2012-07-31 166 views
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()); 
} 

我如何獲得的標籤名稱:tag1tag2tag3

回答

1

首先,在你的XQuery結束不使用文本()。你需要節點本身。其次,不要取節點值,而需要節點名稱。

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

給這樣

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

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

for (int i = 0; i < nodes.getLength(); i++) { 
    System.out.println(nodes.item(i).getNodeName()); 
} 
+0

試過這個,它打印null – 2012-07-31 10:07:46

+0

你打印nodename或nodevalue? – sreejith 2012-07-31 10:19:02