Take a look at using an XML hive database. Unless you really, really need to reparse all of your XML repreatedly, you will be better off using an XML native database. The underlying DB can create "views" of the data much like an SQL database.

There's several out there - commercial and free.

-rick