Какой API синтаксического анализатора XML использует dom4j SaxReader? SAX или DOM? - PullRequest
0 голосов
/ 21 сентября 2011

На сайте dom4j написано: «SAXReader создает дерево DOM4J из событий синтаксического анализа SAX». Что это значит? Является ли SAXReader синтаксическим анализатором DOM, который создает дерево полного XML-файла, или он обрабатывает XML-документ последовательно, как SAX-анализатор?

Вопрос 2: я могу использовать запросы XPath в SAXReader. Совместим ли XPath с парсерами SAX или DOM?

1 Ответ

2 голосов
/ 21 сентября 2011

Смысл dom4j в том, что это альтернативная модель дерева DOM. Не имеет никакого смысла анализировать весь DOM только для преобразования его в dom4j. В любом случае эта страница дает понять, что парсер SAX используется для генерации dom4j.

Re: ваш вопрос XPath. Вообще говоря, вам нужна древовидная модель для запуска XPath. Это означает что-то вроде DOM, dom4j, jdom или xom. Это все разные «объектные модели документов XML». SAX - это совсем другое - это просто поток событий без объектной модели. Итак, правильная ментальная модель: используйте SAX-анализатор для генерации объектной модели, а затем запустите XPath для этой объектной модели. Конечно, есть и другие вещи, которые вы можете сделать, но это один из естественных способов, которыми эти три технологии могут сочетаться.

...