XPath怎么查找不包含某个属性的元素 not(@attr)

畫卷琴夢
发布: 2025-12-14 19:30:42
原创
535人浏览过
XPath中查找不包含某属性的元素应使用not(@attr),且必须置于方括号内作为谓词,如//div[not(@id)];不可省略方括号,亦不可混淆为属性值为空或不等于某值。

xpath怎么查找不包含某个属性的元素 not(@attr)

XPath 中查找不包含某个属性的元素,用 not(@attr) 是完全正确的写法,但要注意它必须放在谓词 [] 内,并且要明确作用在哪个元素上。

基本语法:not(@属性名)

这个表达式本身不是完整路径,它是一个布尔条件,必须嵌套在方括号中,作为元素的筛选谓词使用。例如:

  • //div[not(@id)] —— 选中所有没有 id 属性的 <div> 元素 <li> <code>//*[@class and not(@id)] —— 选中有 class 属性但没有 id 属性的所有元素
  • //input[not(@disabled) and not(@readonly)] —— 选中既没 disabled 也没 readonly<input>
  • 常见误区提醒

    容易出错的地方不是语法本身,而是上下文理解偏差:

    Tome
    Tome

    先进的AI智能PPT制作工具

    Tome 143
    查看详情 Tome
    • 写成 //div not(@id) ❌ —— 缺少方括号,XPath 解析失败
    • 写成 //div[@id = ''] ❌ —— 这匹配的是 id=""(空值),不是“不存在”
    • 写成 //div[not(@id = 'xxx')] ❌ —— 这是“id 不等于 xxx”,不是“没有 id 属性”

    配合其他条件一起用

    实际场景中常需组合判断。比如找「是按钮、有 type 属性、但没有 name 属性」的元素:

    • //button[@type and not(@name)]
    • 如果还要排除 disabled 状态://button[@type and not(@name) and not(@disabled)]

    基本上就这些 —— 记住 not(@xxx) 必须进 [],它判断的是“属性是否存在”,不是“属性值是否为空”。

以上就是XPath怎么查找不包含某个属性的元素 not(@attr)的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号