⌘K 切换工具
VALIDATE & INSPECT

XPath表达式测试器

在XML文档中测试XPath表达式。

local
xpath-tester

0 result(s)

§01 关于此工具

概述

查询 XML 时,XPath 依然是主力:配置文件、RSS/Atom 源、SOAP 报文、站点地图, 以及爬虫选择器。这个测试器随着你的输入对 XML 求值表达式, 用的就是你浏览器自带的那个 XPath 1.0 引擎——所以结果与生产代码里 document.evaluate 的行为一致。

在这里先把表达式调对,好过在代码里改一行选择器就重跑一遍程序——写爬虫或者处理 别人给的 XML 数据源时,表达式往往要试很多次才对。

使用方法

  1. XPath expression 里写表达式,例如 //book/title/text()
  2. 把文档粘贴到 XML 文本域。
  3. 匹配数量(N result(s))和一份编号的匹配值列表会实时更新。两侧任一处输入有毛病时,会显示 Invalid XML 或者 XPath 的错误信息。

示例

  • 对示例文档执行 //book/title/text()AB
  • //book[@id="2"]/titleid 属性为 2 的那本书的标题
  • count(//book)2(数字结果)

说明

文档按 application/xml 解析,因此必须格式良好——标签没闭合会以 Invalid XML 失败。 带默认命名空间的文档在 XPath 1.0 里需要显式处理; 一个朴素的 //title 不会匹配到带命名空间的元素。

另外,由于节点匹配显示的是文本内容,//title//title/text() 在这里看起来往往一样, 但在代码里拿到的分别是元素节点和文本节点。

FAQ
我的 XML 会被发送到服务器吗?
不会。文档用浏览器的 DOMParser 解析,表达式用原生的 document.evaluate API 求值——一切都留在你的浏览器里。
支持哪个 XPath 版本?
浏览器实现的是 XPath 1.0,因此这个工具支持 XPath 1.0 语法。XPath 2.0/3.x 的特性,例如正则表达式或序列类型,都不可用。
结果列表里每一条显示的是什么?
对节点匹配,显示的是该节点的文本内容(匹配到属性节点时显示属性值)。返回字符串、数字或布尔值的表达式,例如 count(//book),则显示那个单一值。