Изучение XML в потоке - PullRequest
       6

Изучение XML в потоке

0 голосов
/ 02 октября 2011

Если у меня большой XML-документ, который я не хочу загружать полностью в память, и какое-то настраиваемое значение, такое как оператор XPath или другой формат, который определяет путь к элементу в xml, можно ли прочитатьXML от узла потока до узла, пока я не найду местоположение, которое я ищу?

Нам нужно создать средства для извлечения значения из xml, не зная схемы.Все, что у нас есть, это документ xml и инструкция xpath.Возможно, мы могли бы изменить что-то другое, кроме xpath, но мы действительно хотим не загружать весь документ, потому что нам нужно обрабатывать его в реальном времени, и xml может быть довольно большим, а объем может быть высоким.

Ответы [ 3 ]

1 голос
/ 02 октября 2011

LibXML2 предоставляет потоковый API (где вы можете анализировать порцию документа), а также XPath.Смешивание этих двух не так просто, как со стандартным парсером DOM, но это возможно сделать для каждого элемента.Смотрите здесь для получения дополнительной информации: http://xmlsoft.org/xmlreader.html#Mixing

0 голосов
/ 08 октября 2011

try http://code.google.com/p/jlibs/wiki/XMLDog

XMLDog может оценивать xpath с использованием SAX (т.е. без загрузки всего документа в память)

0 голосов
/ 02 октября 2011

Вы можете сделать это с помощью Saxon-EE. Простейший подход, вероятно, заключается в использовании проекции документов XQuery: см. Здесь

http://www.saxonica.com/documentation/sourcedocs/projection.xml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...