XPath轴(Axes)是什么 aescendant和following-sibling

畫卷琴夢
发布: 2025-12-22 13:47:43
原创
636人浏览过
XPath轴定义节点间相对关系,descendant::查找所有后代(不含自身),等价于//;following-sibling::仅匹配同父级后续兄弟节点,不跨层。

xpath轴(axes)是什么 aescendant和following-sibling

XPath轴(Axes)是XPath中用于定义“从当前节点出发,朝哪个方向查找”的定位指令。它不依赖固定层级结构,而是描述节点之间的相对关系,比如父子、兄弟、祖先、后代等。掌握轴,就能绕过HTML结构不稳定的问题,写出更鲁棒的定位表达式。

descendant:: 轴:找所有后代,不管隔几层

descendant:: 选取当前节点的所有**后代节点**(子、孙、曾孙……),但不包括自己。它是 // 的完整写法。

  • //div//p 等价于 //div/descendant::p —— 找 div 下任意深度的 p 元素
  • 常用于目标元素嵌套深、父级结构易变的场景,比如商品列表里层层包裹的“价格”span
  • 注意:它不匹配当前节点自身;如需包含自己,用 descendant-or-self::

following-sibling:: 轴:只找同级的“后辈兄弟”

following-sibling:: 选取当前节点**之后的所有同级节点**(即同一父元素下、在它后面出现的兄弟节点),不跨层、不进子树。

AI Room Planner
AI Room Planner

AI 室内设计工具,免费为您的房间提供上百种设计方案

AI Room Planner 136
查看详情 AI Room Planner
  • //th[text()='价格']/following-sibling::td[1] → 定位“价格”表头右边第一个单元格(通常是数值)
  • //input[@name='username']/following-sibling::span[@class='error'] → 用户名输入框后紧跟的错误提示
  • 关键区别:它不会匹配子节点、祖先节点,也不会跳到其他父容器下的节点,非常“守规矩”

两个轴的典型对比

假设 HTML 片段如下:


  名称
  价格
  库存


  笔记本
  ¥599
  12

想定位“价格”列对应的数据(¥599):

  • following-sibling:::精准且高效 → //th[text()='价格']/following-sibling::td[1]
  • descendant:: 就不行——因为 td 不是 th 的后代,它们是平级关系
  • 如果目标在更深嵌套里(比如 td 里的 span),才轮到 descendant:: 出场

以上就是XPath轴(Axes)是什么 aescendant和following-sibling的详细内容,更多请关注php中文网其它相关文章!

相关标签:
Windows激活工具
Windows激活工具

Windows激活工具是正版认证的激活工具,永久激活,一键解决windows许可证即将过期。可激活win7系统、win8.1系统、win10系统、win11系统。下载后先看完视频激活教程,再进行操作,100%激活成功。

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

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