我想构造一个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)]
但不会返回正确的结果.
谢谢你的帮助.
有些不同: :)
//text()[contains(.,'abc')]/ancestor::*[self::div or self::table][1]
似乎比其他解决方案短得多,不是吗? 原文链接:https://www.f2er.com/xml/292956.html