【发布时间】:2015-04-20 15:16:38
【问题描述】:
这是我的 XML 代码:
test.xml
<l>
<i>
<a>AAA</a>
<b>BBB</b>
<c>CCC</c>
</i>
<i>
<a>AAA2</a>
<b>BBB2</b>
<c>CCC2</c>
</i>
<i>
...
</i>
</l>
我想用 Java 提取第二个 c 节点。我尝试了以下代码:
test.java
DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document d = docBuilder.parse("file:///C:/path/to/my/test.xml");
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile("//c[position()=2]");
// The following line raises a NPE
System.out.println("> " + ((Node) expr.evaluate(d, XPathConstants.NODE)).getTextContent());
但是evaluate 方法返回空值,因此引发了 NullPointerException (NPE)。
我错过了什么?
Java 6
【问题讨论】: