我正在寻找一种可重用的方法来从 xml 文档中获取所有节点,这些节点是从给定节点的后代引用(通过 id),但不是给定节点本身的后代。例如:
<root>
<somenode>
<a id="a1"/>
<aref ref="a1"/>
</somenode>
<somenode>
<a id="a2"/>
<aref ref="a1"/>
<aref ref="a2"/>
</somenode>
</root>
如果给定节点是 /root/somenode[1],则结果节点集应该是空的。每个引用的 a 都是 /root/somenode[1] 的子节点。另一方面,如果给定的节点是 /root/somenode[2],则生成的节点集应该包含 /root/somenode[1]/a[1] 而没有其他内容。
重要的是生成的节点集始终以相同的方式排序。此外,解决方案应该只使用 xslt-1.0 并且 exlst 扩展构建到 xsltproc 中(库的确切版本:“使用 libxml 20708、libxslt 10126 和 libexslt 815”)
在此先感谢, 约斯特