使用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
?
答案 0 :(得分:2)
这样给出
xpath.compile("//"+ node_name +"/*")
.......................
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeName());
}
答案 1 :(得分: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());
}
答案 2 :(得分:0)
尝试使用org.w3c.dom.Node#getNodeName()
获取节点的名称。