XPath 测试器

使用浏览器引擎,针对 XML 或 HTML 测试 XPath 1.0 表达式,即时查看匹配的节点、属性、文本以及数值或字符串结果。

将文档解析为
使用浏览器原生的 XPath 1.0 引擎(document.evaluate)求值。对于带默认命名空间的 XML,只能通过文档根元素声明的前缀进行查找。不会上传任何内容。

什么是 XPath 测试器?

XPath 测试器会针对你粘贴的 XML 或 HTML 文档计算 XPath 表达式并显示结果:匹配的元素及其标记和文本、属性值,或者对于 count()、sum() 之类的表达式,显示数字、字符串或布尔值。结果会随着输入实时更新。

如何使用 XPath 测试器

  1. 输入 XPath 表达式,例如 //book[price > 35]/title。
  2. 选择把文档按 XML 还是 HTML 解析。
  3. 粘贴或编辑文档。
  4. 查看匹配数量以及每个匹配的节点,或标量结果。

示例

输入
//book[price > 35]/title on the sample bookstore XML
输出
2 matches: Learning XML, XQuery Kick Start

sum(//book/price) 返回 119.94。

何时使用 XPath 测试器

适合为网页抓取、Selenium/Playwright 定位器、XSLT 或 XML 配置处理编写 XPath。浏览器只实现了 XPath 1.0,所以 matches()、string-join() 等 XPath 2.0/3.1 函数不可用。粘贴的 HTML 中的脚本不会被执行。

XPath 测试器 的工作原理

文档由浏览器的 DOMParser 解析(application/xml 或 text/html);会报告 XML 语法错误。表达式使用 document.evaluate()(浏览器原生的 XPath 1.0 引擎)和 ANY_TYPE 结果类型计算,因此支持节点集、数字、字符串和布尔值。命名空间前缀根据根元素上的声明解析。最多显示 200 个匹配。

常见用例

  • 为 UI 测试构建 //button[normalize-space()="Save"] 这样的定位器。
  • 用 //book/@category 提取所有属性值。
  • 对 XML 订阅源中的数值计数或求和。
  • 调试爬虫中的 XPath 为什么没有返回任何结果。

常见问题

为什么带默认命名空间的 XPath 没有返回结果?

在 XPath 1.0 中,不带前缀的名称永远不会匹配带命名空间的元素。请在根元素上声明前缀并使用它,或使用 *[local-name()='book']。

应该按 HTML 还是 XML 解析?

网页用 HTML(容错解析,标签名小写);订阅源、SOAP、站点地图和配置文件用 XML。

支持 XPath 2.0 吗?

不支持。所有主流浏览器都只实现了 XPath 1.0。

推荐的下一步

探索更多分类