Как запомнить позицию XMLStreamReader в XML с помощью STAX - PullRequest
0 голосов
/ 23 марта 2012

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

РЕДАКТИРОВАТЬ

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

1 Ответ

3 голосов
/ 23 марта 2012

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

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

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

...