2014-11-29 6 views
0

Итак, я пытаюсь извлечь местоположения href из приведенных ниже ссылок, но только для элементов, которые НЕ имеют брата span. Мне удалось найти Xpath для поиска тех, которые работают, но как я это отрицаю? Я пробовал использовать count() и not(), но не могу заставить их быть действительными или возвращать что-либо.Xpath для поиска элемента, который не имеет родственного брата.

<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"]] 

ответ

4

Просто отрицать условие:

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

, который, в данном случае, что эквивалентно

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

@ M.Page : обновлено. – choroba

+0

Существует разница между '[x] [y]' и '[x и y]'. См. Http://stackoverflow.com/a/1006439/18771 – Tomalak

+0

ах спасибо! Я попытался использовать не, не уверен, почему мне не повезло, должно было использовать его в неправильном положении или что-то :-) – jamie

Смежные вопросы