I believe you can say that there is no intuitive and efficient way for searching XML documents without using a database, and definitely not with the technology currently available for use with PHP.
For the problems you describe you should really use an SQL database. XML is a good technology for communication between applications on different servers, but in my opinion it has no place for data storage & retrieval.
Not a lot people know it, and I didn't either until I read it, but in the 60's people were using database systems that had a hierarchical data model, much like XML. So many complexities arose because of that data model that they decided to quit using it, that was when the relational datamodel was invented, something with strong fundaments in mathematics. For more information on this see
Database Debunkings. The guy is not against XML as a whole, but against using it for what you should use a relational database for (even though SQL databases are not based on the relational model, but that's another story to read on that site

).
I don't mean any disrespect, but often when people write they "want to write a [something-system] and I want to use [this and that technology]" I wonder, why. You should look at the technological needs of your application and then choose technology that fulfill those needs to the best, not the other way around.
All of the problems you describe that are difficult to implement using XML as data storage are already solved for you when you use a SQL database. Therefore it seems to me that by using XML you are only making things more difficult for yourself.
Well, just my 3 cents

Bookmarks