Xpath для поиска элемента, у которого нет родного брата
Поэтому я пытаюсь извлечь href местоположения из ссылок ниже, но только для элементов a, которые НЕ имеют одноуровневых элементов. Мне удалось выяснить Xpath, чтобы найти те, которые ДЕЛАЮТ, но как мне отрицать это? Я пытался использовать count() и not(), но не могу заставить их быть действительными или вернуть что-либо.
<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 ответ
Решение
Просто отмените условие:
//a[@class="ahrefclass"][not(../span[@class="evilspan"])]
что в данном случае эквивалентно
//a[@class="ahrefclass" and not(../span[@class="evilspan"])]