2012-02-09 80 views
1

我有類似這樣的XML:如何計算Java中XML文檔中節點的子項數量?

<parent> 
    <child1> 
    <child2> 
    <child3> 
</parent> 

現在有3個孩子父親或母親tag.So我需要得到父標籤的子女數量。

我使用下面的代碼,但它不工作:

NodeList nodeList = doc.getElementsByTagName("a"); nodeList.getChildnodes(); 

如何做到這一點嗎?

回答

2
File file = new File(new File(".").getPath() + "\\src\\yourFile.xml"); 
doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file); 
int childrenCount = doc.getChildNodes().item(0).getChildNodes().getLength(); 
+0

感謝您幫助它會返回爲3?現在 – Goofy 2012-02-09 18:08:32

+1

起初它會返回1作爲結果,因爲根節點總是獨自一人。但是如果你將使用'doc.getChildNodes()。item(0).getChildNodes()。getLength();'返回3. – 2012-02-09 18:12:37

+0

謝謝你謝謝... – Goofy 2012-02-09 18:14:17

3

不管傢伙,我得到它感謝您的意見

NodeList image = doc.getElementsByTagName("Point"); 
Node singleTerminalNode = image.item(i); 
Element firstLevel = (Element)singleTerminalNode; 
NodeList value1Nodes = (firstLevel).getElementsByTagName("ImageFile"); 
int lengthofimage = value1Nodes.getLength(); 
+0

爲什麼用括號括住'(firstLevel)'?它有意義還是建議在標準中使用? – 2012-02-15 06:03:06

+0

,因爲你需要點的孩子標記,它只能以這種方式獲得... – Goofy 2012-02-15 06:05:53

+0

我的意思是你爲什麼使用'(firstLevel).getElementsByTagName(「ImageFile」);'而不是'firstLevel.getElementsByTagName(「ImageFile 「);'? – 2012-02-15 06:08:38

1
Document doc = docBuilder.parse("YOUR_FILE_PATH"); 
Node tag1 = doc.getElementsByTagName("YOUR_NODE"); 
NodeList list1=tag1.getChildNodes(); 
     System.out.println(list1.getLength()); 

確保導入的org.w3c.dom。*和javax.xml。*

相關問題