XPath中的节点关系是怎样的,following-sibling和preceding-sibling是什么意思?

小老鼠
发布: 2025-12-04 18:22:41
原创
650人浏览过
following-sibling和preceding-sibling是XPath中用于定位同一父元素下前后同级兄弟节点的轴,前者匹配当前节点之后、后者匹配之前按文档顺序出现的兄弟节点,均不跨父级且支持索引过滤,关键在于限定同父级和文档先后顺序。

xpath中的节点关系是怎样的,following-sibling和preceding-sibling是什么意思?

XPath 中的节点关系描述的是 XML 或 HTML 文档中元素之间的位置和层级联系,比如父子、兄弟、祖先、后代等。其中 following-siblingpreceding-sibling 是专门用来定位“同级元素”的轴(axis),它们不看层级深浅,只看在源文档中出现的先后顺序。

following-sibling:找后面同辈的兄弟节点

这个轴选取的是当前节点之后、在同一父元素下的所有后续兄弟节点(不包括自身,也不跨父级)。

  • 匹配范围仅限于**同一个父元素内**,且必须在当前节点的**闭合标签之后、父元素结束之前**出现的同级元素
  • 支持带索引,比如 following-sibling::div[1] 表示紧挨着的下一个 div 兄弟;following-sibling::*[2] 表示第二个任意类型的兄弟节点
  • 注意:文本节点、注释、处理指令也算节点,但通常用 * 或具体标签名来过滤

preceding-sibling:找前面同辈的兄弟节点

与 following-sibling 相反,它选取当前节点之前、同一父元素内的所有前面的兄弟节点(从后往前查,但结果按文档顺序返回)。

帮小忙
帮小忙

腾讯QQ浏览器在线工具箱平台

帮小忙 102
查看详情 帮小忙
  • 同样要求在同一父元素下,且位于当前节点起始标签之前
  • preceding-sibling::p[last()] 可以选到该节点之前最后一个 p 标签(即离它最近的那个前面的 p
  • 不能跳过父容器——比如某个 span 的 preceding-sibling 永远不会包含它爷爷辈下的其他元素

别和 parent/child 轴搞混

兄弟轴(sibling)只管“平级”,不管上下级。例如:

  • parent::* 往上找爸爸,child::div 往下找儿子
  • following-sibling::div 是找“堂兄弟”(更准确说是“亲兄弟”),不是找叔叔或侄子
  • 如果想跨层级找类似结构的元素,得组合使用,比如 ../following-sibling::div(先上到父级,再找父级的后续兄弟中的 div)

基本上就这些。用对 sibling 轴的关键是盯住“同一个父元素”和“文档中前后位置”,不复杂但容易忽略上下文约束。

以上就是XPath中的节点关系是怎样的,following-sibling和preceding-sibling是什么意思?的详细内容,更多请关注php中文网其它相关文章!

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

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

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

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