xml – 有更好的方法获得XPath查询结果的父节点吗?

前端之家收集整理的这篇文章主要介绍了xml – 有更好的方法获得XPath查询结果的父节点吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
给定标记如下:
<div class="foo">
   <div><span class="a1"></span><a href="...">...</a></div>
   <div><span class="a2"></span><a href="...">...</a></div>
   <div><span class="a1"></span>some text</div>
   <div><span class="a3"></span>some text</div>
</div>

现在我有兴趣获得这些< a>和一些文本,如果相邻span是a1类。所以在整个代码的结尾,我的结果是< a>从第一个div和一些文本从第三个。如果< a>和一些文本在span或div将有类属性,但没有运气。我想做的是用a1类查询span:

//div[contains(@class,'foo')]/div/span[contains(@class,'a1')]

然后获取其父代并执行另一个query()作为上下文节点的父节点。有什么更好的方法吗?我使用PHP DOM如果这很重要。

ANSWER

根据@MarcB答案,正确的查询是:

//div[contains(@class,'a1')]/..

但是对于< A>它可能更好使用:

//div[contains(@class,'a1')]/../a

得到< A>而不是其容器。

关于xpath查询的好处是,你可以基本上对待他们像一个文件系统路径,所以只是有
//div[contains(@class,'a1')]/..
                                                              ^^

将找到所有.a1节点下面的.foo节点,然后上移一级到a1节点的父节点。

原文链接:https://www.f2er.com/xml/293523.html

猜你在找的XML相关文章