input.xml
output.xml
粘贴 XML,一键以统一缩进美化。

在线 XML 格式化与美化

粘贴 XML,选 2 个或 4 个空格缩进,点 Format。格式化器按元素的嵌套深度排版,同时把声明、处理指令、注释和 CDATA 块整块保留。所有处理都在你的浏览器里完成。

用正确的缩进排版 XML

清晰的缩进能让层级放错的闭合标签、或者埋在一行式 API 响应里的某个节点浮出水面。代码评审前也很有用 —— 结构化的 diff 总比"某一行超长文本被改了"好读得多。

这个格式化器有意做成面向文本、比较宽容的:它不做严格的 XML 解析,不逐个匹配开闭标签,不解析命名空间,不展开实体,也不拿 DTD 或 XSD 去校验。所以格式化成功,并不意味着文档就是良构的,更不意味着接收方会认。

空白也可能是数据

有些 XML 应用会把文本节点里的空白视为有意义的内容。这个格式化器会裁剪并重排标签内的文本,因此对混合内容文档、已签名的 XML、规范化(canonicalization)流程,或者任何对空白敏感的格式来说,输出未必与原文语义等价。

仔细比对,并保留原件。不要对数字签名过的 XML 跑格式化然后指望签名还有效 —— 这里字节级的改动就足以让签名失效。

按任务挑对工具

  • 普通的、数据型的 XML 想读得舒服一点,用这个页面。
  • 需要良构性检查,用 XML 解析器或 xmllint
  • 需要按约定校验,用对应的 XSD 或应用方的校验器。
  • 需要尽力而为的数据转换,用 JSON 转 XML

想把数据换成 JSON?看 XML 转 JSONJSON ⇄ XML 转换器。网页标记则请移步 HTML 格式化工具

FAQ

怎么在线格式化 XML?

粘贴 XML,选好缩进宽度,点 Format。替换原文之前先检查输出 —— 尤其是文本里的空白很重要的时候。

格式化会改动我的 XML 数据吗?

会改动空白,也可能裁剪标签之间的文本。对数据型 XML 来说这通常没问题,但混合内容、规范化 XML 或已签名的文档,就不能想当然地认为二者等价了。

我的 XML 会被上传到什么地方吗?

不会 —— 格式化逻辑在浏览器里运行,不会把 XML 发给转换 API。不过在任何网页编辑器里操作之前,还是先把密钥和生产敏感数据清掉。