元素的Xpath,其所有祖先都具有相同的名称,直到某个点

时间:2014-02-04 06:49:23

标签: xpath recursion

我有一个类似于以下内容的XML:

xml tree

我需要那些只有 son 元素作为其祖先的标记元素。唯一允许的 son 祖先是根元素< em> parent 。 parent 后, tag 的祖先不能是 son 以外的任何东西。因此,此xpath将返回&lt; tag id =“t1”/&gt;和&lt; tag id =“t2”/&gt;

2 个答案:

答案 0 :(得分:0)

//son//tag将是一个解决方案。另一个是//tag[ancestor::son]您可以使用/descendent::代替//;报告结果的顺序有所不同。还有其他变种;哪一个最好取决于你这样做的确切背景。

答案 1 :(得分:0)

我应该早点发布这个或者可能没关系。这是我写的解决这个问题的令人讨厌的xpath: /parent/(descendant::tag except(descendant::element() except descendant::son)/descendant::tag)

希望有人会建议一个更好看的替代品。