</>

XML 工具 · 使用说明

格式化/压缩·校验定位·XPath 查询·树视图浏览·转义/CDATA·本地运行

XML 工具 专为查 XML、调 XML、读 XML 设计——左侧编辑器配 CodeMirror 6 语法高亮,右侧树视图把节点、属性、CDATA、注释、PI 分色展示,XPath 1.0 实时查询命中节点高亮 + 滚动定位,解析失败带行列号直接跳转。

与同类工具的取舍

需求推荐工具
只想美化/压缩一段 XML本工具 或 代码格式化 都行
把 XML 转成 JSON/YAML/CSVYAML/CSV/XML 互转
查询节点 / 浏览树结构 / 调 SOAP本工具(差异化)

命名空间小贴士

XPath 1.0 有个反直觉的坑:默认命名空间不能用空前缀查询。例如:

<feed xmlns="http://www.w3.org/2005/Atom">
  <entry><title>Hello</title></entry>
</feed>

这里 //title 命中 0 个节点。本工具会自动把默认命名空间注册为 _ 前缀,所以应该写 //_:title。带前缀的命名空间保持原写法(//atom:link)。

本地 + 离线

整个流程基于浏览器原生 DOMParser / document.evaluate不引入任何 XML 第三方库,包体最小、速度最快。所有数据停留在你的浏览器内。

快捷键

  • ⌘/Ctrl + Enter — 格式化
  • ⇧⌘ / Shift+Ctrl + Enter — 压缩
  • XPath 输入框 Enter — 立即执行

📍使用场景

  • SOAP 接口调试把抓到的 SOAP 响应粘进来,格式化后用 XPath 直接定位 `//soap:Body//Result`,省去翻一大坨命名空间。
  • RSS / Atom / sitemap 检查校验 well-formed、看节点结构、用 XPath 抓 `//item/link` 或 `//url/loc` 一键挑出所有 URL。
  • Android / iOS 配置文件浏览AndroidManifest.xml、strings.xml、Info.plist 这类深嵌套结构,树视图按层折叠比纯文本好读得多。
  • 出错位置定位解析失败时状态栏显示行列号,点一下直接跳转到出错位置,再不用从头一行行数。
  • 转义/CDATA 互转把含 `<` `&` 的文本一键转义塞进 XML 节点;或反过来把模板里的 `&lt;br&gt;` 一键还原。

常见问题

XPath 支持到什么版本?

浏览器原生 document.evaluate 实现的是 XPath 1.0——//@attr[predicate]text()count()contains()starts-with()name() 这些都能用。不支持 XPath 2.0/3.0 引入的 forifsome/every、正则函数 matches() 等。开发者日常 90% 的查询 1.0 都够。

默认命名空间为什么查不到节点?

这是 XPath 1.0 的"特性"——根节点写了 xmlns="http://example.com" 后,//book 是查不到 <book> 的,必须带前缀。本工具自动把默认命名空间映射为 _: 前缀,所以应该写 //_:book。带前缀的命名空间(xmlns:atom="..."//atom:link)保持原写法即可。

和"代码格式化"、"YAML/CSV/XML 互转"工具有什么区别?

三者覆盖不同需求:代码格式化侧重多语言通用美化/压缩,XML 走 Prettier 风格;YAML/CSV/XML 互转主打数据格式互转,把 XML 当数据载体;本工具专注 XML 本身——树视图浏览、XPath 查询、节点定位。如果你只想美化一段 XML 选哪个都行,但要查节点、看结构、调 SOAP,用本工具最顺手。

解析失败提示"未找到根节点"或乱七八糟的报错?

XML 严格要求单一根元素所有标签闭合——HTML 那套"忘记 </p> 也能渲染"在 XML 里行不通。状态栏会把浏览器返回的行列号显示出来,点一下跳过去看,常见三种原因:① 多个并列根元素(外面再套一层 <root>);② 标签大小写不一致(XML 区分大小写);③ 属性值没用引号包。

CDATA 包裹/拆包按钮做了什么?

包裹把当前编辑器里的整段文本套上 <![CDATA[ ... ]]>——主要用途是把含 < & script 的 HTML 片段塞进 XML 节点而不被解析。如果原文里已经有 ]]>,会自动按 XML 规范拆段。拆包反过来,把所有 <![CDATA[...]]> 标记移除、只保留内容。两个按钮都是字符串级操作,不依赖解析成功。

大文件能撑到多大?

编辑器(CodeMirror 6)几 MB 文本流畅。解析与树视图基于 DOM,5–10 MB 范围内体验良好;再大(几十 MB 节点结构)会明显变慢——这是 DOM 实现本身的限制,不是工具能优化的。超大文件建议先在终端用 xmllint --xpath 做查询。

数据会上传到服务器吗?

完全不会。解析、格式化、XPath 都用浏览器原生 API(DOMParser / document.evaluate)在本地完成,本工具不发起任何网络请求,断网也能跑。

快捷键有哪些?

⌘/Ctrl + Enter 格式化;⇧⌘/Shift+Ctrl + Enter 压缩;XPath 输入框里按 Enter 立即执行。

</> 打开 XML 工具 格式化/压缩·校验定位·XPath 查询·树视图浏览·转义/CDATA·本地运行