xml文件上的XPath表达式

时间:2014-04-03 22:17:47

标签: python xml xpath flask lxml

考虑以下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>标记

如果没有简单的方法,有关如何实现这一目标的任何建议吗?

1 个答案:

答案 0 :(得分:1)

是的,有。但实际上你并不想要第二个<d/>元素,因为在给定的上下文中没有。如果您应用位置过滤器(即使用[2]),则表示您希望中的第二个<d/>元素在给定的<c/>元素中。但每个<c/>只有一个<d/>,因此您将始终产生空结果。

因此,正确的XPath将是:

curl http://localhost:5000/home/content?xpath=/a/c[2]/d