xpath 查找不包含子节点的节点

Posted

技术标签:

【中文标题】xpath 查找不包含子节点的节点【英文标题】:xpath find node that does not contain child 【发布时间】:2011-07-24 18:29:55 【问题描述】:

我正在尝试创建一些 xpath,它将找到所有不包含 img 标签的 a 标签,以便诸如

<a href="http://aol.com">link</a>

匹配,但是

<a href="http://yahoo.com"><img src="http://yahoo.com/logo.png"></a>

没有。

当然,我可以通过两部分搜索来做到这一点,但我确信一定有某种方法可以用 xpath 做到这一点。

【问题讨论】:

【参考方案1】:
//a[not(img)]

如果可以的话,尽量避免使用//。另请注意,这只会排除直接包含imgs的as。

【讨论】:

XPath 表达式,用于 “任何不具有 img 后代元素的 a 元素”//a[not(.//img)] 我需要第一个没有链接的 td //table/tr/td[1][not(a) and not(b)]html 使用 td 作为表头,表头被包裹在 &lt;b&gt; 中,所以我也不得不跳过这些。

以上是关于xpath 查找不包含子节点的节点的主要内容,如果未能解决你的问题,请参考以下文章

如何同时更新不同的节点子节点firebase android

XPath / XQuery:在节点中查找文本,但忽略特定后代元素的内容

根据XPath中子节点的double值查找父节点

Python3-Selenium自动化测试框架之xpath元素定位

Xpath的使用

xpath:查找具有给定属性的节点,其值包含字符串