XML doesn't do anything by itself. All it is is a way to organize data in text file, using an established standard, thus allowing any application that understands that standard to read that data and do whatever it wants with it.
XML is a bit like using a database application to store data. However, it doesn't have any of the utilities and functions that a database has for sorting, filtering, and otherwise manipulating the data. All it has in its favor is the portability of its file format structure, making it a convenient way to exchange information between different applications that might reside on disparate platforms.
"Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
~ Terry Pratchett in Nation
I have some clients who don't want to or don't have time to use a DB admin to update theirselves their data on their web page. Shops owners, small and medium trade companies...They usualy have their data (items, prices, and so on) stored on Excell files. It is easier for them to save their XLS in XML format and send it FTP to the server than opening an Admin, even a friendly HTML build one, in order to do changes here and there.
Now everything I have to do was to find a dynamic way (in fact I use AJAX) to grab data from that XML file and convert it in a HTML format to be displayed on a web page. So that now neither me nor my client have to update "manually" the web pages. He simply save it's data in XML format and sends it to the server.
As NogDog says - "exchange information between different applications that might reside on disparate platforms"