Я хотел бы построить запрос XPath, который будет возвращать элемент «div» или «table», если у него есть потомок, содержащий текст «abc». Одно предостережение заключается в том, что у него не может быть потомков div или table.
<div>
<table>
<form>
<div>
<span>
<p>abcdefg</p>
</span>
</div>
<table>
<span>
<p>123456</p>
</span>
</table>
</form>
</table>
</div>
Таким образом, единственным правильным результатом этого запроса будет:
/div/table/form/div
Моя лучшая попытка выглядит примерно так:
//div[contains(//text(), "abc") and not(descendant::div or descendant::table)] | //table[contains(//text(), "abc") and not(descendant::div or descendant::table)]
но не возвращает правильный результат.
Спасибо за вашу помощь.