XPath 测试器
用 XPath 1.0 查询 XML,支持命名空间和完整类型结果
本地处理 XML 1.0,支持命名空间、注释、CDATA 与处理指令。不支持 DTD 和实体声明。 输入仅保留在当前页面,不存储草稿。上限:输入 1 MiB、输出 4 MiB、含属性 20,000 个 XML 节点、64 层元素。文本框会规范化粘贴换行;保留 CSV 原始回车请上传 UTF-8 文件。
仅解析 XML。默认命名空间也需要显式查询前缀。支持字符串、数字、布尔值与最多 2000 个节点;复制/下载包含完整的类型结果 JSON 和完整元素 XML。XPath 非有限数值以 number 结果中的字符串表示。
完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。
工具说明
XPath 测试器使用浏览器原生 XPath 1.0 查询 XML 1.0。每行设置一个 前缀=URI 来查询命名空间元素;原文使用默认命名空间时,查询仍需要前缀。节点集、字符串、数字和布尔值分别显示类型。复制与下载包含完整结果 JSON:元素保留完整 XML 及子树所需命名空间,属性与文本值不修剪空白。合法查询的零匹配属于空结果。XPath 非有限数值在 number 结果中表示为字符串。表达式最多 2048 字符,命名空间设置最多 32 行和 8192 字符,最多匹配 2000 个节点。不支持 HTML 解析、DTD、XPath 2/3 或 namespace 轴。输入最多 1 MiB、输出最多 4 MiB,XML 最多 20,000 个节点(含属性)和 64 层元素。上传只接受严格解码的 UTF-8;粘贴文本遵循浏览器文本框的换行规则。处理在本地完成,不保存输入草稿。
场景配方
查询带默认命名空间的 Feed
目标:区分命名空间不匹配与合法空结果。
- 粘贴 XML Feed 并检查 xmlns 的值。
- 把 p 绑定到该 URI,分别运行 count(//p:item)、//p:item/@id 与 string(//p:item[1])。
- 复制完整结果 JSON,核对值与类型。零节点属于有效结果;无效表达式会单独报错。
结果:得到包含明确命名空间设置的可复现 XPath 1.0 查询。
失败门诊(高频踩坑)
表达式返回零节点
原因:元素可能带命名空间,或路径确实没有选中记录。
修复:检查元素展开名称并绑定前缀;区分合法的零匹配与语法错误。
浏览器里的结果看起来不完整
原因:可见预览最多展示 40,000 字符。
修复:使用“复制完整结果 JSON”或下载 JSON;在节点与输出限制内,这两者包含全部匹配。
生产可用片段
原文使用默认命名空间时也要绑定查询前缀
xml
<catalog xmlns="urn:catalog"><item id="001"> A </item></catalog>
命名空间:p=urn:catalog
XPath:count(//p:item)
结果 JSON:{"type":"number","value":1}常见问题
为什么 //item 匹配不到默认命名空间?
XPath 1.0 中无前缀的元素测试只匹配无命名空间元素。若文档 URI 为 urn:catalog,设置 p=urn:catalog 后使用 //p:item;查询前缀不必与原文前缀相同。
可以执行 count()、string() 与 boolean() 吗?
可以,分别返回数字、字符串与布尔结果。JSON 不支持非有限数字字面量,因此 NaN 与无穷值保留为 number 类型结果中的字符串。
复制只包含预览内容吗?
不是。即使屏幕预览截断,复制与下载也包含完整类型结果 JSON。元素值包含完整 XML,属性与文本值保留空白。
可以查询 HTML 或使用 XPath 2.0 吗?
不可以。本工具严格解析 XML 1.0,并使用浏览器 XPath 1.0 引擎。这类需求应选择对应 HTML 解析器或其他 XPath 引擎。
继续浏览