You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP XPath如何实现多not条件排除指定img元素

XPath 多条件排除节点写法

直接在现有筛选谓词中用and拼接第二个排除规则即可,最终可用的XPath表达式如下:

//img[not(ancestor::*[@id="wpadminbar"]) and not(starts-with(@src, 'data:image'))]

规则说明

  • 第一条规则not(ancestor::*[@id="wpadminbar"]):排除所有id为wpadminbar的元素内部的img节点,相比原有写法限定祖先必须是div的逻辑兼容性更好,即便wpadminbar的标签类型变更(比如改为nav、header)也能正常匹配;如果确定wpadminbar永远是div元素,保留原有ancestor::div[@id="wpadminbar"]的写法也可正常运行。
  • 第二条规则not(starts-with(@src, 'data:image')):排除src以data:image开头的内联图片,这里使用starts-with()函数而非contains(),可以避免正常图片的src路径中恰好包含data:image字符串时被误过滤,匹配精度更高。

针对提供的测试HTML结构,该表达式会准确返回最后两个符合要求的外部图片节点,wpadminbar容器内的2张图片、内联data类型的svg图片都会被正确排除。

内容的提问来源于stack exchange,提问作者Uxair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 13:57:32