I don't think of XML that way. You don't use XML files to store the data like a database. You use it to "package" the data you are sending to be displayed. For instance:
Suppose I had a bunch of recipes. The data is stored in MySQL in a database, and might have several tables. In any case, when I display that information on my website, I can do whatever I want with proprietary queries.
However, suppose I want my recipes to be standardized, so that people using any type of browser could read the recipe -- Even those with cell phones or Palm Pilots. In this case, when a request is made for a recipe, my PHP server gets the data, packages it up with XML tags, and sends it on its way.
Now, when it reaches the destination, It can be displayed in whatever manner makes sense for the medium. In a web browser, I might have a picture of the dish. On a Palm Pilot, it might be in a format that can be used in a shopping list program.
I can still use it however I like on my personal website, but since it's packaged in a certain way with XML, others can use it as well.
Think of it this way: MySQL is the warehouse. XML is the box the merchandise goes in. PHP (and ASP, etc) is the method of shipment(FedEx or UPS), and the browser is the person at the other end that receives the package, opens it, and uses the contents however he sees fit.
Sure, you could just package up all of your merchandise in boxes (XML) if you want, but it's not efficient. It's better to have the items on shelves, where they are easily sorted, accessed, and assembled prior to packaging. XML is NOT a substitute for a database storage system.
Make sense?