如何在XPath中根据子元素属性排除指定的h4元素
结论
该需求可以实现,不需要提及任何链接文本或地址,仅通过XPath自带的谓词筛选规则即可完成。
实现方案
直接使用如下XPath表达式即可://h4[not(a/@href)]
表达式逻辑说明
- 基础选择器
//h4保持原有逻辑,选中页面内所有h4元素 - 后方追加的谓词
[not(a/@href)]会过滤掉所有直接子元素a带有href属性的h4节点,刚好匹配你要排除的目标元素特征
如果待排除的a标签可能是h4的深层后代元素(不是直接子节点),可以改用如下适配深层筛选的版本://h4[not(.//a/@href)]
效果验证
你给出的待排除h4元素结构:
<h4> <a href = "http:///www.google.com"> "google" </a> </h4>
会被上述表达式精准过滤,其余9个不包含带href属性a子元素的h4都会被正常选中。
内容的提问来源于stack exchange,提问作者tajir12457
相关产品推荐
相关产品推荐

