0

XPath の使用。

私はこのドキュメントを持っています:

<?xml version="1.0"?>
<root>
  <items>
    <item1>
      <tag1>1</tag1>
      <tag2>DFGGFDGF</tag2> 
      <tag3>3</tag3>
    </item1>

    <item2>
      <tag1>DFGD</tag1>
      <tag2>SDFSDFFSD</tag2>    
      <tag3>SDFSFDFS</tag3>
    </item2>
  </items>
</root>

item1要素のタグ名を取得したい。

これを使用してタグの値を取得します。

XPathExpression expr = xpath.compile("//"+ node_name +"/*/text()");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
  System.out.println(nodes.item(i).getNodeValue()); 
}

タグ名を取得するにはどうすればよいですか: tag1, tag2, tag3?

4

3 に答える 3

2

このように与える

xpath.compile("//"+ node_name +"/*")

.......................

for (int i = 0; i < nodes.getLength(); i++) {
  System.out.println(nodes.item(i).getNodeName()); 
}
于 2012-07-31T10:05:20.450 に答える
1

まず、XQuery の最後に text() を使用しないでください。ノード自体が必要です。次に、ノードの値を使用しないでください。代わりにノード名が必要です。

XPathExpression expr = xpath.compile("//"+ node_name +"/*");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
  System.out.println(nodes.item(i).getNodeName()); 
}
于 2012-07-31T10:10:38.927 に答える
0

org.w3c.dom.Node#getNodeName()ノードの名前を取得してみてください。

「org.w3c.dom.Node」も参照

于 2012-07-31T09:55:12.247 に答える