Как проанализировать XML с помощью sax, проверяя родительские и дочерние теги одновременно? - PullRequest
1 голос
/ 28 апреля 2011

Привет, я хочу проанализировать документ XML с помощью синтаксического анализатора саксофона.То, что я хочу сделать, это проверить внешние и внутренние теги (например, у меня есть те же теги в других тегах также. Как.), Поэтому я хочу получить данные, основанные на внешнем теге, т.е. только из tag или tag1 в нашем случае.Можете ли вы помочь мне с этим?Могу ли я проверить родительские и дочерние теги, используя саксофон в Java ????Пожалуйста, помогите мне.

Спасибо ..

Ответы [ 2 ]

4 голосов
/ 28 апреля 2011

Напишите ContentHandler, который использует стек для хранения данных вложенных элементов.В начале StartElement выполните Stack.push, а в конце EndElement - Stack.pop.Используйте Stack, содержащий только имена элементов, или Stack с вашим собственным классом Element для хранения большего количества данных.

Вы также можете написать реферат общего назначения ContentHandler, который содержит Stack и предоставляет методы его потомков для получения всех видов информации:текущий элемент и его путь.

0 голосов
/ 28 апреля 2011

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

Ex: 
<x>
 <y/>
</x>
<z>
 <y/>
</z>

, поэтому в startElement () обработчика вы можете проверить, если имя == x, установить значение переменной x (иначе z). когда вы получите y, проверьте, какая переменная установлена ​​(x / z).

...