按 ⌘K 切换工具
VALIDATE & INSPECT
XPath表达式测试器
在XML文档中测试XPath表达式。
xpath-tester
0 result(s)
§01 关于此工具
概述
查询 XML 时,XPath 依然是主力:配置文件、RSS/Atom 源、SOAP 报文、站点地图,
以及爬虫选择器。这个测试器随着你的输入对 XML 求值表达式,
用的就是你浏览器自带的那个 XPath 1.0 引擎——所以结果与生产代码里
document.evaluate 的行为一致。
在这里先把表达式调对,好过在代码里改一行选择器就重跑一遍程序——写爬虫或者处理 别人给的 XML 数据源时,表达式往往要试很多次才对。
使用方法
- 在 XPath expression 里写表达式,例如
//book/title/text()。 - 把文档粘贴到 XML 文本域。
- 匹配数量(
N result(s))和一份编号的匹配值列表会实时更新。两侧任一处输入有毛病时,会显示Invalid XML或者 XPath 的错误信息。
示例
- 对示例文档执行
//book/title/text()→A、B //book[@id="2"]/title→id属性为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),则显示那个单一值。