2012-07-13 48 views
2

我必須使用令牌環中的所有元素基於令牌數 和看到,在我的XML結構來查找XML結束標籤,它只是象徵式= 5和令牌類型= 0從這個網站有什麼辦法使用VTD-XML的

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結構。

我想用結束標記,以表明當它到達 - ></entry>對象添加到當前列表。當它到達 - ></list>如果它有外部列表,則將這些列表添加到上部對象。

我想這個程序就像一個庫,所以我用反射來調用方法和對象。

現在,我只有一個問題,程序如何知道在哪裏相應添加。

所以有什麼方法可以獲得結束標記或解析XML以使其具有結束標記。

最好注意,謝謝。

回答

2

結束標記不由vtd解析器保留,因爲它與第一個標記相同。任何原因你正在尋找結束標籤?

+0

我只想用純Java不使用JSON外部庫來解析這個XML轉換成JSON(只需連接字符串) – SaintTail 2012-09-12 06:57:43

1

我有一個類似的問題,雖然我不知道你可以找到關閉標記作爲簡單的另一個元素(正如可能很有名的@ vtd-xml作者),我選擇了沿着使用導航對象來解析每個孩子。

首先,我得到了導航,然後進入第一個孩子。然後,我只是移動到下一個兄弟,註冊開放標記的偏移量,然後使用當前偏移量和前一個偏移量來獲取整個元素。一旦下一個兄弟移動返回false,我退出到前一個元素,移動到下一個兄弟,並且能夠計算前一個兄弟的最後一個子元素的關閉位置(當沒有時,繼續返回到父元素更多的兄弟姐妹,然後使用文件的長度,當我到達最後的元素)。

+0

有趣的練習,但大多數人prolly不會需要它 – 2015-05-24 04:47:49

相關問題