如果你使用
xPathExpression.evaluate(document);
你的 DOM 文档在哪里document
,那么它将返回它匹配的第一个节点的字符串表示形式。对于您认为 XPath 正在选择单个文本节点的用例,这可能很好。如果不是这种情况,您可以编写一些从以下位置返回的toString()
方法NodeList
:
xPathExpression.evaluate(document, XPathConstants.NODESET);
编辑 1:这是一篇关于将 a 转换为 XML 文档并打印它的SO文章。NodeList
编辑 2:如果您有使用count
返回单个值的 XPath 表达式或逻辑运算符,那么您可以捕获抛出的异常并采取适当的操作:
try {
NodeList nodeList = (NodeList) xPathExpression.evaluate(document, XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
System.out.println(node.getNodeName());
}
} catch (XPathExpressionException e) {
String result = xPathExpression.evaluate(document);
System.out.println(result);
}