2

これで、私のソフトウェアはxmlファイルから(ルート要素:データ)を表示しますが、ノードのリストが必要です。これは、たとえばXmlファイルが持っているものです。

(データには「カウント」と「人」があります)

(カウント= 1)

(人は「名前」と「車」を持っています)

(名前=「アダム」)

(車には「ポルシェ」と「ミニミニ」があります)

ソフトウェア

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>
4

2 に答える 2

3

次を使用できます。

doc.getChildNodes()

深くなり、子供がなくなるまでダウを再帰的にドリルします。

forループを「パワー」するためにNodeList使用できるaが返されます。size()

于 2012-11-04T15:04:49.657 に答える
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が得られます。

お役に立てば幸いです。

于 2012-11-04T15:10:06.367 に答える