Есть ли способ найти конечный тег в xml с помощью vtd-xml

Я использую токен для зацикливания всех элементов на основе количества токенов и вижу, что в моей структуре xml он имеет только тип токена = 5 и тип токена = 0 из этой сети.

http://vtd-xml.sourceforge.net/userGuide/6.html

Так есть ли способ найти конечный тег в vtd-xml

Потому что у меня xml выглядит так.

<ZDA>
<userdata>
    <firstname>Eak</firstname>
    <lastname>Tan</lastname>
</userdata>
<list name="employee">
    <entry>
        <first_name>firstName</first_name>
        <title>title</title>
        <empid>1</empid>
        <second_name>secondName</second_name>
        <last_name>lastName</last_name>
        <date_of_birth>dateOfBirth</date_of_birth>
        <pin>pin</pin>
        <province>province</province>
        <start_date>startDate</start_date>
        <list name="address">
            <entry>
                <addressid>1</addressid>
                <empid>1</empid>
                <sequence>1</sequence>
                <detail>address11</detail>
            </entry>
            <entry>
                <addressid>2</addressid>
                <empid>1</empid>
                <sequence>2</sequence>
                <detail>address12</detail>
            </entry>
            <entry>
                <addressid>3</addressid>
                <empid>1</empid>
                <sequence>3</sequence>
                <detail>address13</detail>
            </entry>
        </list>
    </entry>    
</list>

I use ap.iterate() to loop through all the xml structure.

Я хочу использовать конечный тег, чтобы указать, что при достижении --> </entry> добавить объект в текущий список. Когда он достигнет --> </list>, добавьте этот список в верхний объект, если он имеет внешний список.

И я хочу, чтобы эта процедура была похожа на библиотеку, поэтому я использую отражение для вызова метода и объекта.

У меня сейчас проблема только в том, как программа может знать, куда добавлять соответственно.

Как и любой способ получить конечный тег или проанализировать XML, чтобы он имел конечные теги.

С уважением, спасибо.


person SaintTail    schedule 13.07.2012    source источник


Ответы (2)


Конечный тег не сохраняется синтаксическим анализатором vtd, поскольку он совпадает с начальным тегом. По какой причине вы ищете конечные теги?

person vtd-xml-author    schedule 15.07.2012
comment
Я просто хочу разобрать этот xml в json, используя чистую java, не используя внешнюю библиотеку json (просто подключите строку) - person SaintTail; 12.09.2012

У меня был аналогичный вопрос, хотя я не знал, что вы можете найти токен close как просто еще один элемент (как указал, возможно, хорошо названный @vtd-xml-author), я решил пойти по линии использования объекта навигации для разбора каждого ребенка.

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

person topherg    schedule 13.05.2015
comment
Интересное упражнение, но большинству людей оно вряд ли понадобится. - person vtd-xml-author; 24.05.2015