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,,,?tag2tag3

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 回答