给定标记如下:
原文链接:https://www.f2er.com/xml/293523.html<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>而不是其容器。