XML 格式化工具
让 XML 文档更易阅读,或使用压缩模式移除部分布局空白。处理在浏览器中完成;格式化可能改变空白,既不验证模式,也不生成规范 XML。
如何格式化 XML
- 粘贴一个 XML 文档,或打开一个不超过 2 MiB 的 UTF-8 文件。工具支持不含 DOCTYPE 的 XML 1.0,不会打开网址或获取模式。
- 选择美化并使用两个空格、四个空格或制表符缩进,也可主动选择压缩。阅读空白变化提示后执行所选操作。
- 查看当前检查结果和可能出现的预览截断提示。复制 XML 或下载完整的 UTF-8 文件;修改输入或设置会使旧结果失效。
工具检查和修改哪些内容
良构性检查涵盖文档结构、合法字符和命名空间绑定,包括展开名称相同的属性。它不能证明文档符合模式,也不能证明其含义符合应用预期。
美化仅在符合条件的容器内替换子元素周围的直接空白;压缩则移除相同空白而不添加缩进。没有模式时通常无法证明这些空白无意义,因此两种操作均不保证语义等价。
根元素直接含有混合文本、CDATA 或 xml:space="preserve" 的子树会保留文本布局,即使后代重设为 default 也是如此。仅含空白的叶子节点、注释、处理指令、命名空间声明和子节点顺序均予保留。
输出始终包含 XML 1.0 UTF-8 声明、没有 BOM,并以 LF 结尾。引号、引用、空标签、换行符和处理指令分隔符可能变化。转义可在再次解析时保留已解析的属性控制字符和文本回车符。
值得检查的示例
美化会为 <r> <a/> </r> 添加换行和缩进;压缩后规范化声明之后为 <r><a/></r>。即使元素看起来相同,布局变化也会改变字符数据。
在 <p>Hello <b>world</b> !</p> 中,空格属于混合文本。整个子树保留原有文本布局,不会把句子拆到多行。
如果 a:id 和 b:id 的前缀指向同一命名空间,这两个属性会冲突。没有前缀的 id 则不属于元素的默认命名空间。仅更改前缀拼写不能解决展开名称重复。
重要限制
仅支持 XML 1.0 和 UTF-8 文件。XML 1.1、其他编码声明、任何 DOCTYPE 和自定义实体均被拒绝。不会打开命名空间 URI 或样式表指令。
本工具不验证 DTD 或 XSD,不生成规范 XML,不检查签名,不转换为 JSON,也不修复文档。若必须保留原文件的精确字节或签名,请勿用规范化输出替代原文件。
输入上限为 2 MiB、深度 128、100,000 条记录及每个元素 128 个属性;单个标记也有限制。输出上限为 8 MiB。错误附近的位置表示检测到问题的位置,不一定是错误标记的起点。
可见预览有长度限制,但复制和下载包含完整的已验证输出。取消、失败或超时不会提供部分结果;资源限制不保证所有浏览器的内存使用情况。
本地处理文档
工具在本地处理 XML,不会主动上传或保存输入和结果。复制与下载均由用户主动触发;下载文件和剪贴板受浏览器及操作系统控制。
XML 格式化常见问题
参考资料
以下资料介绍 XML 范围和解析器依赖;它们不认证本实现,也不根据模式验证您的文档。
- W3Cw3.orgXML 1.0,第五版文档语法、字符、引用和空白。
- W3Cw3.orgXML 1.0 命名空间命名空间绑定和属性的展开名称。
- WHATWGencoding.spec.whatwg.org编码标准UTF-8 解码和编码。
- W3Cw3.org规范 XML 1.1规范化是独立过程,本工具不生成规范 XML。
- raw.githubusercontent.comsaxes 解析器文档解析器事件和命名空间处理。
- registry.npmjs.orgsaxes 6.0.0 软件包固定版本的 XML 解析器包。
- registry.npmjs.orgxmlchars 2.2.0 软件包解析器使用的字符定义。
工具拒绝 DOCTYPE,不获取外部资源,也不验证模式。
参考资料审核日期:2026-11-08。
