什么是 XPath?

XPath 是一种用于从 XML 文档中选择节点和计算值的查询语言,使用路径表达式来导航 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 作为备选方案。

相关工具

相关术语

相关文章