2012-11-04 75 views
2

現在我的軟件會從xml文件中顯示我(根元素:數據),但是我需要節點列表。此哪些XML文件已經獲得國家例如:在java中讀取xml - 所有節點和數據排序

(數據已經得到了 「數」 和 「人」)

(計數= 1)

(人已經得到了 「名」 和 「車」)

(NAME = 「亞當」)

(車已經得到了 「Porshe」 和 「minimini」)

Softweare

import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.parsers.DocumentBuilder; 
import org.w3c.dom.Document; 
import org.w3c.dom.NodeList; 
import org.w3c.dom.Node; 
import org.w3c.dom.Element; 
import java.io.File; 
public void Ada() 
{ 
File fXmlFile = new File("c:\\file.xml"); 
      DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
      DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
      Document doc = dBuilder.parse(fXmlFile); 
      doc.getDocumentElement().normalize(); 

      System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); 
} 

XML文件:

<data> 
    <count>1</count> 
    <person> 
     <name>Adam<name> 
     <cars> 
      <fast>Porshe</fast> 
      <slow>MiniMini</slow> 
     </cars> 
    </person> 
</data> 
+0

什麼是你的問題? – Frank

+0

我該怎麼做才能顯示這個(數據已經得到了「數」和「人」) (計數= 1) (人已經得到了「名」和「汽車」) (NAME =「亞當」 ) (汽車有「Porshe」和「minimini」) –

回答

3

您可以使用:

doc.getChildNodes() 

得到更深層次和遞歸鑽道,直到沒有孩子離開。

它會返回一個NodeList你可以使用size()'for power'for循環。

+2

使用它更清潔,更多的背景比我的。 – mdominick

1

在XPath的請看:http://developer.android.com/reference/javax/xml/xpath/package-summary.html

基本上你可以做任何你需要使用的是Android上的XML。

因此,像:

XPath x = XPathFactory.newInstance().newXPath(); 
String expression = "/data"; 
InputSource source = new InputSource("someXML.xml"); 
NodeSet nodes = (NodeSet)xpath.evaluate(expression, source, XPathConstants.NODESET); 

這應該給你的節點的節點集。

希望有所幫助。