什么是 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

代码格式化工具大全【2026】- JS/CSS/HTML/XML格式化最佳实践

全面深度硬核解析前端 Web 网页开发中代码格式化(Code Formatting)与代码压缩优化(Minification)的底层 AST(抽象语法树)核心原理机制。详细系统探讨如何通过自动化配置 ESLint、Prettier 等工具显著提升庞大团队协作代码的规范可读性,并使用 Terser 等现代构建打包工具(Webpack/Vite)极限压缩 JavaScript/CSS 以大幅缩减文件体积,成倍提升网站首屏加载性能与用户转化体验。

2025-02-01