【发布时间】:2013-02-05 14:42:00
【问题描述】:
使用 XPath 1.0 和下面的 XML,我如何选择所有具有“b”父节点的“c”节点,如果“b”父节点没有“c”节点,则选择“”,即获取@987654321 @ 作为结果节点集(按文档顺序)?
我正在使用 VTD-XML 2.11 (Java),我正在寻找一个 XPath 评估,它将返回上述结果而无需循环。
<a>
<b>
<c>c1</c>
</b>
<b/>
<b>
<c>c3</c>
</b>
</a>
我浏览了问题并找到了一些有趣的指针,例如 Oliver Becker 的方法,但到目前为止我还没有找到解决方案。
任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
您希望 xpath 返回节点集还是字符串作为结果?
-
我正在寻找 xpath 评估以返回由
{"c1", "", "c3"}字符串组成的节点集。 -
节点的顺序重要吗?
-
是的,(文件)顺序很重要。
-
出于性能原因,vtd-xml 不保证文档顺序,除非评估过程自然而然地导致它......将不得不考虑这一点,看看我是否能想出一些答案你