javax.xml.xpath.XPath vs org.apache.xpath.XPathAPI

さっとWebみた限りだとXPathAPI.selectNodeIteratorが主流なんだと思って使ってたんだけど、
こいつどうもイベントドリブンな感じ、Iterator.nextNode()が呼ばれたときに現在位置から下に向かって検索してるような…
32gくらいのxmlファイルで色んな種類のxpathで検索、検索結果をローカルにコピーさせると、
javaxとxalanで動きが違いすぎてふいた。Listを返すやつを使って解決。こんなアホなイテレータなんて死んでしまえ。
それにしてもDOMなんだからもうちょっとマシに組めば簡易オンメモリデータベースとして機能するだろうになぁ…
DOMに展開すると1.5〜4倍くらいメモリ使うくせに検索遅いって何なのって思ったけど…ちょっと考えたけどやっぱ何に使ってるかよくわからん。インデックスとかある訳じゃなし、挿入も検索も遅いしなぁ…
あれそもそもDOMの用途って何だったっけ。