我正在使用Saxon的s9api软件包进行XPath查找。
我想将搜索限制为仅1个节点及其后代。
a <- data.table(matrix(4,4,4))
b <- a
b[,`:=`(V5=6,V4=2)]
print(a)
我作为XdmNode(bNode)传递/ root / b [2],我正在尝试搜索它。
<root>
<b>
<a>foo</a>
</b>
<b>
<a>bar</a>
</b>
</root>
但我总是从Document root获得结果!
我尝试过以下XPath:
注意:我知道我可以获取传递的XdmNode索引并将其放入我的XPath中。但我希望从给定的XdmNode进行搜索,以便可以对任何文档中的任何节点进行搜索,而且我不必担心该节点是如何被找到的。
答案 0 :(得分:1)
尝试./a
或a
。上下文已经引用b
,因此您的XPath号3会错误地尝试找到不存在的嵌套b
。
答案 1 :(得分:0)
在我的代码中,它是这样的:
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile(path);
NodeList xpathResult = (NodeList) expr.evaluate(node, XPathConstants.NODESET);
最后一行是有趣的。
我不确定这是否是撒克逊和/或正确的版本。可能试一试:)