I need to evaluate multiple XPath (or possibly XQuery - I have some freedom to change the design here) expressions over a larger number of huge XML documents, potentially gigabyte size. If the files were small I could easily evaluate the expressions one by one with a DOM tree. If there was only one expression I might be able to evaluate it in streaming mode. However, I have found no solution for efficiently evaluating multiple expressions in streaming mode, i.e. without making multiple passes.
There are research papers. XTREAM looks pretty good, but though the paper was written in 2005 I can find no implementation. This is even older, but still I can find no implementation.
Is there a library (ideally in Java and ideally open source) that can do this?