XimpleWare has released VTD-XML 2.0, a free (GPL) non-extractive Java/C/C# library for processing XML that supports XPath. This appears to be an example of what Sam Wilmot calls "in situ parsing". In other words, rather than creating objects representing the content of an XML document, VTD-XML just passes pointers into the actual, real XML. (These are the abstract pointers of your data structures textbook, not C-style addresses in memory. In this cases the pointers are int indexes into the file.) You don't even need to hold the document in memory. It can remain on disk. This should improve speed and memory usage, but I haven't verified that, and I don't trust their own benchmarks. Version 2.0 introduces native XML indexing, though it's hardly the first product to do that. I remain troubled by the developer's hype, as well as the fact that this is still not a minimally conforming XML parser. :-(