我想构造一个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]
似乎比其他解决方案短得多,不是吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。