在java中读取xml - 所有节点和数据排序

时间:2012-11-04 14:59:55

标签: java

现在我的软件将从xml文件中向我显示(根元素:数据),但我需要节点列表。这就是Xml文件的例子:

(数据有“计数”和“人”)

(count = 1)

(人有“名字”和“汽车”)

(name =“Adam”)

(汽车有“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>

2 个答案:

答案 0 :(得分:3)

您可以使用:

doc.getChildNodes()

更深入,递归深入,直到没有孩子离开。

它会返回NodeList您可以使用size()来强制使用&#39;一个for循环。

答案 1 :(得分: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);

那应该给你一个节点的NodeSet。

希望有所帮助。