2012-03-23 2 views
0

Я разбираю большой документ с помощью STAX. Как я могу запомнить или клонировать или сохранять XMLStreamReader или его позицию, чтобы впоследствии вернуться в эту позицию и продолжить чтение, как обычно?Как запомнить позицию XMLStreamReader в xml с помощью STAX

EDIT

Я знаю, что метод Theres getLocation(), но как я могу назначить Место для другого читателя?

ответ

3

Вы не можете этого сделать. Невозможно перейти в определенное место. StAX, а также SAX - только парсеры. Такой способ дает возможность иметь эффективную реализацию.

Через глубокий клон это теоретически возможно, если ваша реализация поддерживает его (маловероятно). Звучит больше, чем вам нужен парсер Dom или TrAX.

Если это невозможно из-за размера документа, вам необходимо изменить свой синтаксический анализ, чтобы не было необходимости возвращаться к предыдущей точке. Или вы можете запомнить местоположение в своем коде (например, на основе подсчета элементов) и развернуть новый парсер до этой точки до фактической обработки.

+0

Спасибо вам большое за ответ. Использование элемента count - действительно классная идея. Благодаря! – bunnyjesse112

Смежные вопросы