考虑以下XML文件:
<a>
<b>
</b>
<c>
<d>content X</d>
</c>
<c>
<d>content Y</d>
</c>
</a>
是否有任何简单的方法来解析XML以使每个元素都具有其xpath表达式,所以当我执行类似curl http://localhost:5000/home/content?xpath=/a/c/d[2]
之类的操作时,它会识别我指的是第二个<d>
标记
如果没有简单的方法,有关如何实现这一目标的任何建议吗?
答案 0 :(得分:1)
是的,有。但实际上你并不想要第二个<d/>
元素,因为在给定的上下文中没有。如果您应用位置过滤器(即使用[2]
),则表示您希望中的第二个<d/>
元素在给定的<c/>
元素中。但每个<c/>
只有一个<d/>
,因此您将始终产生空结果。
因此,正确的XPath将是:
curl http://localhost:5000/home/content?xpath=/a/c[2]/d