2012-10-03 50 views
0

我有這樣的XML代碼節點的所有子:選擇使用DOM

<root> 
    <node> 
    </first_child> 
    </second_child> 
    </third_child> 
    </node> 
</root> 

我需要把所有的子節點逐一保存就像使用DOM三個B節點變量。

如果我使用

doc.getElementsByTagName("node"); 

我借這個 「節點」 所有的孩子,而我只需要 「FIRST_CHILD,second_child和third_child」

如何獲取呢?

+0

記住,DOM庫經常返回Node'的'類型,但'Node'就是一切,包括'Document'。所以你可以找到Node,然後轉換成適當的類型(比如'Element'),然後使用它的方法。 –

+0

好的,再次感謝! –

回答

2
Element el = (Element)(doc.getElementsByTagName("node").item(0)); 
NodeList children = el.getChildNodes(); 

for (int i=0; i<children.getLength(); i++) { 
    System.out.println(children.item(0).getNodeValue()); 
} 
+0

我想,你應該明確投到(Element)。 –

+0

@SuzanCioc謝謝,現在更新。 – poplitea

+0

是的。有用!非常感謝您的回答! –

0

你可以用這種方式得到孩子。

var children = document.getElementById('node').getElementsByTagName('*'); 
+0

什麼是'var'?那是Java嗎? – Baz

+0

他的節點都沒有'id'屬性,所以'getElementById()'不起作用。 – poplitea

+0

是的。在這種情況下,我不需要'id'。 –

1
Element el; 
el = (Element) doc.getElementsByTagName("node").item(0); 
el.getChildNodes(); 
+0

這是非常像我的答案,我猜... – poplitea

+0

謝謝它的作品太...;) –