用于查找没有兄弟元素的元素的Xpath

时间:2014-11-29 10:41:20

标签: html dom xpath xpath-2.0

所以我试图从下面的链接中提取一个href位置,但仅针对没有span兄弟的元素。我已经设法找出Xpath找到那些DO,但我怎么否定这个?我尝试过使用count()而不是()但似乎无法使它们有效或返回任何内容。

<div class="member">
    <a href="/test1" class="ahrefclass">shouldntfindme</a>
    <span class="evilspan">evilspan</span>
</div>
<div class="member">
    <a href="/test2" class="ahrefclass">findme</a>
</div>
<div class="member">
    <a href="/test3" class="ahrefclass">shouldntfindme</a>
    <span class="evilspan">evilspan</span>
</div>
<div class="member">
    <a href="/test4" class="ahrefclass">findme</a>
</div>
<div class="member">
    <a href="/test5" class="ahrefclass">shouldntfindme</a>
    <span class="evilspan">evilspan</span>
</div>

到目前为止我的Xpath是

//a[@class="ahrefclass"][../span[@class="evilspan"]]

1 个答案:

答案 0 :(得分:4)

只是否定条件:

//a[@class="ahrefclass"][not(../span[@class="evilspan"])]
在这种情况下,

等同于

//a[@class="ahrefclass" and not(../span[@class="evilspan"])]