ZH
我的工具

XPath 测试器(适用于 XML 和 HTML 的 XPath 1.0)

在浏览器中针对 XML 或 HTML 测试 XPath 1.0 表达式:显示匹配的节点、数量、字符串、数字和布尔值,并支持命名空间前缀。

文档中声明的前缀(xmlns:p="…")会被自动添加。
我的工具 →
广告

XPath 用 //book[price > 10]/title 这样的路径表达式选取 XML 或 HTML 文档的某些部分。爬虫、XSLT、Selenium 和 Playwright 的定位器、SOAP 客户端以及许多配置工具都依赖它,而一个拼写错误只会悄悄地什么都选不到。粘贴文档、输入表达式,就能借助浏览器自带的 XPath 1.0 引擎,准确看到哪些节点匹配,或 count() 等表达式返回的数字、字符串、布尔值。

使用方法

  1. 粘贴 XML 或 HTML,并选择解析方式。
  2. 输入 XPath 表达式并点击计算。
  3. 对于带命名空间的 XML,文档中声明的前缀会自动绑定;其他前缀请以 prefix=URI 的行添加。
  4. 查看匹配项(文本内容、类型、名称和序列化后的标记)或计算出的值。

计算公式

/ 子节点 · // 后代节点 · @ 属性 · [谓词] · text() · count() sum() string() contains() starts-with() position() last()

这是浏览器实现的 XPath 1.0(matches()、lower-case() 等 XPath 2.0/3.1 函数不可用)。节点集按文档顺序列出。不带前缀的名称永远不会匹配默认命名空间(xmlns="…")中的元素——请按 XPath 1.0 的要求,为该 URI 绑定一个前缀再使用。

示例

在示例 catalog 中,//book[price > 10]/title 匹配 2 个节点:"XML Developer's Guide"(44.95)和 "Maeve Ascendant"(12.50)。count(//book) 返回数字 3,count(//book[@lang]) 返回 2(有两本书带 lang 属性),//book/@id 列出 bk101、bk102 和 bk103。

常见问题

为什么我的表达式在 RSS、Atom 或 SOAP 文档上什么都没返回?

这些文档使用了默认命名空间。XPath 1.0 没有默认命名空间,所以 //entry 什么也匹配不到;请绑定一个前缀,如 atom=http://www.w3.org/2005/Atom,并写成 //atom:entry。

可以使用 XPath 2.0 或 3.1 的函数吗?

不可以——浏览器只实现了 XPath 1.0。人们需要的大多数表达式(路径、谓词、contains()、count())都属于 1.0。

为什么 HTML 的结果里有我没写过的标签?

HTML 按网页的方式解析,所以解析器会补上隐含的元素,如 <html>、<body> 和 <tbody>,与浏览器中的 DOM 完全一致。

我的文档会被上传吗?

不会,所有处理都在你的浏览器中完成。

为什么输入时不会自动更新?

浏览器的 XPath 引擎一旦开始就无法停止,而像 //*[count(//*) > 0] 这样在谓词内嵌套 // 的表达式,在大文档上可能要运行数分钟。所以只有点击计算时才会运行。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). XPath 测试器(适用于 XML 和 HTML 的 XPath 1.0). https://kakao.mobile/zh/tools/xpath-tester/

MLA

“XPath 测试器(适用于 XML 和 HTML 的 XPath 1.0).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/xpath-tester/.

广告