-1

Java XMLを使用して、同じ名前で再帰的に含まれる要素に到達するにはどうすればよいですか?これはPythonElementTreeで機能しましたが、何らかの理由でこれをJavaで実行する必要があります。

私が試してみました:

String filepath = ("file.xml");
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filepath);

NodeList nl = doc.getElementsByTagName("*/*/foo");

<foo>
  <foo>
     <foo>
     </foo>
  </foo>
</foo>
4

1 に答える 1

2

getElementsByTagNameXPath式を取るという印象を受けているようです。そうではありません。文書化されているように:

指定されたタグ名を持ち、ドキュメントに含まれているすべての Element の NodeList をドキュメント順に返します。

XPath を使用する必要がある場合は、javax.xml.xpathパッケージを確認する必要があります。サンプルコード:

Object set = xpath.evaluate("*/*/foo", doc, XPathConstants.NODESET);

NodeList list = (NodeList) set;
int count = list.getLength();
for (int i = 0; i < count; i++) {
    Node node = list.item(i);
    // Handle the node
}
于 2012-12-25T07:58:22.350 に答える