什么是 XPath?

XPath 是一种用于从 XML 文档中选择节点和计算值的查询语言,使用类似文件系统的路径表达式导航 XML 树形结构。它支持绝对路径、相对路径和谓词过滤,提供丰富的内置函数,广泛应用于 XSLT 转换、网页抓取、自动化测试和 XML 数据提取等场景。

快速了解

全称XML 路径语言
创建时间2026-02-01
规范文档官方规范

工作原理

XPath 提供了一种强大的语法,用于从 XML 文档中定位和提取数据。它使用类似于文件系统路径的路径表达式来导航 XML 的树形结构,选择元素、属性和文本内容。XPath 支持多种节点选择方法,包括从根开始的绝对路径、从当前上下文开始的相对路径,以及用于过滤的谓词。该语言包含用于字符串操作、数值计算和布尔运算的内置函数,对于 XML 处理、XSLT 转换和网页抓取应用程序至关重要。

主要特点

  • 使用路径表达式导航 XML 树形结构
  • 支持绝对路径 (/) 和相对路径 (//) 选择
  • 方括号 [] 中的谓词用于过滤节点选择
  • 轴说明符定义导航方向(子节点、父节点、兄弟节点)
  • 内置字符串、数字和节点集函数
  • 通配符 (*) 匹配当前层级的任何元素

常见用途

  1. 从 XML 配置文件中提取数据
  2. 网页抓取和 HTML 解析
  3. XSLT 样式表转换
  4. XML 文档验证和测试
  5. 使用 Selenium 进行自动化 UI 测试

示例

loading...
Loading code...

常见问题

XPath 和 CSS 选择器有什么区别?

CSS 选择器语法简洁,主要用于样式和简单的 DOM 选择,只能向下遍历。XPath 功能更强大,支持向上、向下、兄弟节点等多方向遍历,支持复杂条件和函数,可以选择属性和文本节点。在网页抓取和自动化测试中,XPath 通常更灵活。

XPath 中 / 和 // 有什么区别?

单斜杠 / 表示从当前节点选择直接子节点(绝对路径)。双斜杠 // 表示从当前节点选择所有后代节点,不管层级深度(相对路径)。例如,/bookstore/book 只选择 bookstore 的直接子元素 book,而 //book 选择文档中所有 book 元素。

如何在 XPath 中使用谓词过滤节点?

谓词用方括号 [] 表示,用于过滤节点集。可以使用位置(如 [1] 表示第一个)、属性(如 [@class='active'])、包含文本(如 [contains(text(),'关键词')])或比较运算(如 [price>30])。多个谓词可以链式使用,如 //book[@category='fiction'][1]。

XPath 有哪些常用的内置函数?

XPath 提供丰富的内置函数:字符串函数(contains()、starts-with()、normalize-space())、数值函数(sum()、count()、round())、节点函数(position()、last()、name())、布尔函数(not()、true()、false())。这些函数大大增强了查询的灵活性。

XPath 在自动化测试中如何使用?

在 Selenium 等自动化测试框架中,XPath 用于定位页面元素。常用策略包括:使用唯一属性(//input[@id='username'])、组合多个属性(//button[@type='submit' and @class='primary'])、使用文本内容(//a[text()='登录'])。建议优先使用 ID,XPath 作为备选方案。

相关工具

相关术语

相关文章

JSON vs XML终极对决【2026】- 数据格式选择全攻略

深入对比现代 Web 开发中两大主流数据交换格式:轻量级的 JSON 与结构严谨的 XML 的优劣差异。本高级指南从底层语法结构、反序列化解析性能、人类可读性、生态系统支持等维度进行全方位深度剖析。教您如何在现代 RESTful API 接口设计、微服务架构通信、复杂企业级 SOAP 应用对接等实际工程场景中制定最合理的数据格式选择与技术迁移重构策略!

2024-01-25

JSONPath详解【2026】- 语法、原理与实战应用

全面系统地掌握 JSONPath 查询提取语言的高级语法规则规范、底层解析原理和在自动化 API 测试中的业界最佳实践。本实战教程带你学习如何编写极度高效的过滤表达式,从深层嵌套的复杂大体积 JSON 响应数据对象中精准提取所需的字段信息,详细包括条件过滤器编写、递归遍历查询降维技巧,并提供基于 Java(RestAssured)/Python/Node.js 的实战代码示例。

2026-01-12

JSON在线对比指南:高效比较JSON文件的完整教程【2026】

全面系统地学习如何高效、准确地在线对比深层复杂嵌套的 JSON 数据文件。深入硬核掌握 JSON diff 差异比较的底层技术原理与算法(如 LCS、基于键匹配),学会使用业界最佳的在线 JSON 差异比较与可视化工具进行 Git 版本控制冲突解决和后端 REST API 联调调试。本高级指南详细解析了多种常见的差异对比应用场景、智能高亮冲突差异点,并为您提供实用的 Python 与 JavaScript 多语言代码实战示例以实现自动化的数据结构比对。

2026-02-07