我想構造一個XPath查詢,它將返回一個「div」或「table」元素,只要它具有包含文本「abc」的後代。有一點需要注意的是它不能有任何div或table後代。帶有後代和後代文本的XPath查詢()謂詞
<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)]
但不返回正確的結果。
感謝您的幫助。
好問題,+1。查看我的答案,可能是最短的解決方案。 :) – 2010-10-13 12:58:17