Как вам нужен доступ к вашим данным?
Если это однопроходный процесс, вам не нужно строить дерево в памяти. Вы можете использовать SAX (быстро, просто) или StAX (быстрее, не так просто).
Если вам нужно сохранить дерево в памяти для навигации, XOM или JDOM - хороший выбор. DOM - это Выбор последней инстанции , будь то уровень 1, 2 или 3, с расширениями или без них.
Xerces, который является синтаксическим анализатором, включенным в Java (хотя вы должны получить обновленную версию от Apache и не использовать ту, что входит в комплект Java, даже в 6.0), также имеет потоковый собственный интерфейс, называемый XNI .
Если вы хотите подключить другие готовые детали в цепи, часто SAX или StAX работают хорошо, так как они могут построить свою собственную модель в памяти. Например, механизм Saxon XSLT / XQuery работает с DOM, SAX или StAX, но строит внутренне TinyTree (по умолчанию) или DOM (необязательно). DataDirect XQuery также работает с SAX, StAX или DOM, но действительно любит StAX.