XPath怎么同时选择多个路径 |操作符用法

来源:建站教程作者:Robin头衔:草根站长
导读:本期聚焦于小伙伴创作的《XPath怎么同时选择多个路径 |操作符用法》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《XPath怎么同时选择多个路径 |操作符用法》有用,将其分享出去将是对创作者最好的鼓励。

XPath是用于在XML和HTML文档中查找信息的语言,在实际的节点选择场景中,我们常常需要同时获取多个不同路径的节点,这时候XPath的|操作符就能发挥很大的作用。|操作符也叫并集操作符,它可以把多个XPath路径的结果合并起来,返回所有匹配节点的集合。

XPath |操作符的基础语法

|操作符的语法非常简单,只需要把多个XPath路径用|连接起来即可,格式如下:

路径1|路径2|路径3...

这里的每个路径都是独立的XPath表达式,最终的结果是所有路径匹配到的节点的并集,重复出现的节点只会被保留一次。需要注意的是,|操作符两边的路径是独立计算的,不会相互影响。

|操作符基础使用示例

假设我们有如下的XML文档,后续示例都基于这个文档进行演示:

<bookstore>
  <book category="编程">
    <title>Python基础教程</title>
    <author>张三</author>
    <price>89.00</price>
  </book>
  <book category="文学">
    <title>散文精选</title>
    <author>李四</author>
    <price>45.00</price>
  </book>
  <magazine>
    <name>科技周刊</name>
    <price>12.00</price>
  </magazine>
</bookstore>

示例1:选择所有book和magazine节点

如果我们想要同时获取bookstore下的所有book节点和magazine节点,就可以使用|操作符:

/bookstore/book|/bookstore/magazine

执行这个XPath表达式后,会返回两个book节点和一个magazine节点,总共三个节点。

示例2:选择所有title和author节点

如果我们需要获取文档中所有的title节点和author节点,可以这样写:

//title|//author

这个表达式会匹配到两个title节点和两个author节点,结果集合包含四个节点。

|操作符结合谓语的使用

|操作符可以和XPath的谓语(方括号中的过滤条件)结合使用,实现更精准的多路径选择。比如我们想要选择category为编程的book节点的title,以及所有magazine节点的name:

/bookstore/book[@category="编程"]/title|/bookstore/magazine/name

执行后返回的结果是<title>Python基础教程</title>和<name>科技周刊</name>两个节点,符合我们的筛选要求。

|操作符使用注意事项

  • |操作符返回的是节点集合的并集,重复的节点只会保留一次,不会重复出现。
  • 每个用|连接的路径都是独立计算的,路径之间不需要有层级关联,可以是完全不相关的路径。
  • 如果某个路径没有匹配到任何节点,不会影响其他路径的结果,最终结果只包含匹配到的节点。
  • 在HTML文档中使用时,同样适用,比如同时选择所有的<div>标签和<p>标签://div|//p。

HTML场景下的使用示例

假设我们有如下的HTML片段:

<div class="container">
  <h1>标题内容</h1>
  <p class="intro">介绍文本</p>
  <span class="tip">提示信息</span>
  <p class="content">正文内容</p>
</div>

如果我们想要同时选择所有的h1节点和class为intro的p节点,XPath表达式可以这样写:

//h1|//p[@class="intro"]

执行后会返回<h1>标题内容</h1>和<p class="intro">介绍文本</p>两个节点,满足我们的选择需求。

常见问题解答

问题1:|操作符和or关键字有什么区别?

or是XPath的逻辑运算符,用于谓语中的条件判断,比如//book[@category="编程" or @category="文学"],是选择满足其中一个条件的book节点;而|操作符是合并多个路径的结果,两者的使用场景完全不同。

问题2:|操作符可以连接多少个路径?

|操作符没有路径数量的限制,可以根据需要连接任意多个路径,只需要用|依次分隔即可。

XPath|操作符路径选择XML解析修改时间:2026-07-12 19:12:31

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。