有没有办法使用vtd-xml在xml中找到结束标记

时间:2012-07-13 10:44:09

标签: xml tags 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>

我使用ap.iterate()遍历所有xml结构。

我想使用结束标记来指示何时到达 - &gt; </entry>将对象添加到当前列表。当它达到 - &gt; </list>如果它有外部列表,则将这些列表添加到上层对象。

我希望这个过程就像一个库,所以我使用reflect来调用方法和对象。

现在,我只知道程序如何知道相应的添加位置。

所以有任何方法可以获得结束标记或解析XML以使其具有结束标记。

最好的问候,谢谢。

2 个答案:

答案 0 :(得分:2)

vtd解析器不保留结束标记,因为它与起始标记相同。您是否正在寻找结束标签?

答案 1 :(得分:1)

我有一个类似的问题,虽然我不知道你可以找到关闭令牌只是另一个元素(正如可能很好命名的@ vtd-xml-author所指出的),我选择沿着使用的路线前进用于解析每个孩子的导航对象。

首先,我拿到了导航,然后进入了第一个孩子。然后,我简单地移动到下一个兄弟姐妹,注册开始令牌的偏移量,然后使用当前偏移量与前一个偏移量来获得整个元素。一旦下一个兄弟移动返回false,我退回到前一个元素,移动到下一个兄弟,并且能够计算前一个兄弟的最后一个子元素的关闭位置(当没有时继续返回父元素)更多的兄弟姐妹,然后在我到达最后一个元素时使用文件的长度。)