2013-09-23 86 views
0

我正在遍歷一個XML,期望的輸出是形成一個二叉樹。我的XML是在Xml節點上迭代

<SUB> 
    <IN> 
     <Number> 
      <ID>1</ID> 
      <ID>2</ID> 
     </Number> 
    </IN> 
</SUB> 

所以預期輸出中是作爲SUB父節點,隨後孩子nodes.While我試圖遍歷SUB節點的給我5個values..3值#text ..?

我需要添加IN作爲左節點。

+0

你能解釋清楚嗎? –

+0

如果你按照我上面的XML ..我需要從它形成一個二叉樹,它具有SUB作爲父節點..IN作爲它的左節點,隨後ID作爲它的子節點...並且從它形成一個INFIX表達式 – sukha

+0

表達式將是(IN條件)SUB..sumthing lyk dis – sukha

回答

0

雖然迭代,你需要檢查節點的節點類型是Element類型爲
exampleNode.getNodeType()== Node.ELEMENT_NODE 如果上述條件爲真,XML那麼只有輸入所以它會返回2個值而不是5個。

+0

謝謝..它的工作.. – sukha

+0

不忘記upvote,如果它適合你 –

+0

嗨,你能幫助我建立整個樹..我增加了一個元素..和dis應該是我的下一個子小孩的父節點..但是當我這樣做..它說節點到字符串轉換是不可能的 – sukha

0

找到像#text或#comment這樣的值是很常見的。

這是我用它來避免這些:

if (node.getNodeName().equals("#text")|| node.getNodeName().equals("#comment")) continue; 

而且也注意到在Node轉換爲Element後這樣做檢查。或者您將嘗試將#text文字轉換爲Element,並且會拋出異常。

+0

嗨,你能請幫助我建立整個樹..我已經添加了一個元素..和dis應該是我的下一個子小孩的父節點..但是當我這樣做..它說節點到字符串轉換是不可能的 - – sukha

+0

堅持下去,讓我的工作代碼複製到pastebin – Reinherd

+0

JAVA:http://pastebin.com/P3AsyDxM XML:http://pastebin.com/eb6eGRei – Reinherd