我需要将 xpath 节点搜索限制为子树。我目前正在使用下面的方法,但无论我是给它我要搜索的文档还是节点,它都会搜索整个文档。
private NodeList findNodes(Object obj,String xPathString) throws ... {
XPath xPath = XPathFactory.newInstance().newXPath();
XPathExpression expression = xPath.compile(xPathString);
return (NodeList) expression.evaluate(obj, XPathConstants.NODESET);
}
我现在使用的解决方案是创建新文档,附加节点并搜索新文档,然后合并。我想改进这一点。可以吗?
我使用的 XPath 是 //nodeName
。
最佳答案
您正在查看 //
轴,这意味着“文档根的任何后代节点”,
将其更改为 .//
轴(上下文节点的后代),它将按预期工作。
关于java - 子树上的 xpath 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8358994/