2014-11-04 67 views
1

给定一个XML文件,如:的XPath读根元素返回null

<source> 
    <element value="a"> 
    <element value="b"> 
</source> 

我试图读取使用Java和XPath的XML的根元素( “源”):

public String parseExpression(Document doc) { 
    NodeList nodeList = (NodeList) xPath.compile("/").evaluate(
        doc, XPathConstants.NODESET); 
    return nodeList.item(0).getFirstChild().getNodeValue(); 
} 

但是它返回null。为什么?

+0

[DOMDocument getNodeValue()可能重复返回null(包含输出转义字符串)](http://stackoverflow.com/questions/12413450/domdocument-getnodevalue-returns-null-contains-an-output-escaped-串) – Joe 2014-11-04 12:10:14

回答

2

因为.getNodeValue();不返回属性的值。改为尝试(Element)nodeList.item(0).getFirstChild()).getAttribute("value")。 您尝试读取的值不在您正在访问的元素节点中。 它是在一个单独的属性节点中,只有在您将NodeList条目转换为Element时才可访问。