XML 格式化工具

来自 SOAP 服务、RSS 订阅源和配置导出的压缩 XML,挤在一行里根本没法看。这个格式化工具会解析文档,用一致的缩进(2 或 4 个空格、制表符,或不缩进以输出压缩结果)重新构建,保留属性顺序和 CDATA 区段,并把任何格式良好性问题连同精确的行号和列号一起报告出来,让你不用大海捞针就能修好不匹配的标签。

如何格式化 XML

  1. 1

    粘贴 XML

    任意长度、任意编码;声明会被保留。

  2. 2

    选择缩进

    空格(2 或 4 个)、制表符,或压缩。

  3. 3

    格式化

    解析器先构建 DOM,再以一致的间距重新序列化。

  4. 4

    复制结果

    输出是格式良好的 XML,可直接粘贴到日志或文档中。

格式化时会保留哪些内容

  • XML 声明(<?xml version="1.0" encoding="UTF-8"?>)原样保留。
  • DOCTYPE 声明 及内部子集会被保留。
  • 处理指令(<?xml-stylesheet ?>)单独占一行。
  • 注释 根据上下文放在单独一行或同一行内。
  • CDATA 区段 连同其中的空白完全原样保留。
  • 属性值 在不含双引号时用双引号重新加引号,否则用单引号。
  • 实体引用 如 &amp;、&lt;、&gt; 保持原样,除非你启用完整实体展开。

缩进示例

输入(压缩后):

<books><book id="1"><title>1984</title><author>George Orwell</author></book></books>

格式化后(2 个空格):

<books>
  <book id="1">
    <title>1984</title>
    <author>George Orwell</author>
  </book>
</books>

工具能捕获的常见错误

错误 修复
结束标签不匹配 让开始标签和结束标签的名称一致
元素未闭合 补上结束标签
标签名中有非法字符 标签名必须以字母或下划线开头
同一元素上有重复属性 删除重复项
CDATA 格式错误 检查 <![CDATA[ 和 ]]> 是否配对
文本中未转义的 < 或 & 改用 &lt; 或 &amp;

格式良好 vs 有效

  • 格式良好 的 XML 遵循语法规则:标签平衡、字符合法、嵌套正确。格式化工具会检查这一点。
  • 有效 的 XML 还要符合某个模式(DTD 或 XSD)。要做这种检查,请使用 XSD 校验工具。

一份 XML 文档可以格式良好却无效,但反过来不行。

实用说明

  • XML 属性顺序对某些系统有意义(现代系统大多无所谓),格式化工具会保留输入的顺序。
  • 自闭合标签 vs 显式空标签:在 XML 中 <foo/> 和 <foo></foo> 等价;除非你选择不这样做,否则格式化工具会对空元素使用自闭合形式。
  • 命名空间前缀会被完全保留。

常见问题

会。混合内容元素和 CDATA 区段里的文本保持原样;只有元素之间的空白会为缩进而调整。

浏览器中的实际上限约为 50 MB。超过这个量,DOM 解析会消耗过多内存。对于超大文件,请在命令行使用 xmllint 之类的流式格式化工具。

正确。命名空间声明会保留在其所在元素上;除非你启用「合并命名空间」,否则格式化工具不会把它们重新挪到根元素。

不会。解析和格式化都在你的浏览器中完成,不会传输任何内容。

相关工具

此工具还提供其他语言版本