XML 格式化

按标签结构重缩进的 XML 美化器,CDATA 与注释原样保留,含压缩模式。

接口返回的 XML 是一行,SOAP 报文缩进层层错位,Android 布局文件改完乱作一团——XML 的可读性全靠缩进,而手工补缩进既慢又容易错。本工具按标签结构重排:开标签、闭标签、文本节点各就各位,自闭合标签与声明(<?xml ?>、<!DOCTYPE>)正确处理,CDATA 与注释整段保留。

实现是标签级词法 + 深度计数,不做完整 XML 解析:这意味着轻微的嵌套错误也能被「自愈」排版(闭标签对齐到最近的同名开标签),不会因为一个未闭合标签就整页报错。压缩模式输出单行版本,便于日志与传输场景。

文本节点里的空白为什么不动

<title> Hello World </title> 里的空格是内容的一部分。格式化只调整「标签之间」的空白,文本节点内部原样保留——这与 minidom 等标准库的行为不同(它们会规范化文本),对配置文件和报文是更安全的选择。

CDATA 与注释是整段黑盒

CDATA 段里可能写着含 < > & 的代码或数学公式,注释里可能有被注释掉的旧标签——这些内容参与标签解析会直接乱套。工具把它们当作不可分割的块整体保留,只在块级做缩进。

常见问题

XML 有语法错误能格式化吗?
多数情况可以。实现按标签级词法工作并做深度自愈,未闭合标签、错位嵌套都能得到合理的排版结果;但如果标签名本身拼错,闭标签对齐会以最近的同名开标签为准。
会改动属性顺序或编码声明吗?
不会。标签内部(属性、声明)原样保留,只调整标签之间的缩进与换行。
和 XML 转义是一回事吗?
不是。格式化只管排版;把 & < > 换成实体的转义需求请用 XML 转换页或本站 JSON 工具族里的转义功能。

相关工具