Поддерживают ли какие-либо саксофонные библиотеки ранний выход на основании какого-либо условия? - PullRequest
4 голосов
/ 24 декабря 2011

У меня есть XML-файл, который выглядит следующим образом:

<root>
<application-key>ABC2349293493</application-key>
...
..
</root>

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

Мой сервер набирает обороты, поэтому мне нужен способ оценить количество запросов без необходимости читать весь XML.

О DOM не может быть и речи из-за нехватки памяти.

Я доволен SAX, но с помощью xerces вы не можете остановить обработку xml, поскольку это push-модель.Единственный способ, который я знаю до сих пор, это выбросить исключение.

Поддерживает ли какая-либо из других библиотек саксофона преждевременный выход из программы?

Ответы [ 2 ]

3 голосов
/ 24 декабря 2011

StAX (потоковый Api для XML) pull-анализатор. Выбор правильной реализации также важен: Лучшая реализация StAX .

P.S. Я все еще думаю, что SAX способ делать вещи (выбрасывая исключение) проще.

2 голосов
/ 24 декабря 2011

Исключение - действительно единственная опция в спецификации, доступная для выхода из процесса синтаксического анализа. Как изложено Java. Sax parser. Как вручную прервать синтаксический анализ? или Как остановить анализ XML-документа с помощью SAX в любое время? .

Переключитесь на парсер, если вы ДЕЙСТВИТЕЛЬНО не хотите использовать исключение, но я не думаю, что это действительно имеет значение.

...