我将基于 Saxon 的 Java 应用程序用于 XPath 解析器。请考虑以下几点:
<import>
<record ref="abc">
<id>123</id>
<data>Value<data>
</record>
<record ref="def">
<parent>123</parent>
<data>Value2</data>
</record>
</import>
我的用例是,我正在遍历记录节点,需要查找另一个属性 ref 等于子父节点下的值的节点。
如果当前节点是<record ref="def">
,如何编写查询以通过匹配返回第一个记录节点内的数据节点/query/record/id/text() = current node/parent/text()
?
如果我执行此查询:
/import/record[id/text() = '123']/data
然后我得到了正确的数据节点,但我似乎无法用父节点下的值替换“123”?
我尝试替换'123' with ./parent/text()
,当 XPath 编译时,没有返回任何结果。
谢谢,
JB