piapia123
zh

XML 格式化与压缩

格式化

所有处理都在浏览器本地完成,数据不上传服务器

输入
输出

按标签层级把 XML 重新缩进:每个元素一层,注释、CDATA、处理指令与 DOCTYPE 各占一行,标签内部的连续空白压成一个空格,而属性值里的空白原样保留(class="a b" 里的两个空格是有意义的)。压缩模式去掉标签之间所有空白与注释。CDATA 里的内容是字符数据,整体原样搬运,不会因为里面出现标签而错乱。

功能

  • 按标签层级缩进,缩进可选 2 空格 / 4 空格 / 制表符
  • 标签内部的连续空白压成一个空格,属性值里的空白原样保留
  • 属性值里出现 > 不会被当成标签结束,标签不会被从中间切断
  • 注释、CDATA、<?xml ... ?> 与 DOCTYPE 各自成行
  • DOCTYPE 的内部子集 [...] 与其中的实体声明不会被截断
  • CDATA 内容原样保留,里面的标签与空白不参与缩进
  • 压缩模式去掉标签之间的空白与注释
  • 不做语法校验:标签没闭合、属性引号没配对时尽力缩进而不是报错

使用方法

  1. 把 XML 粘贴进输入框
  2. 选择处理方式与缩进
  3. 按 Ctrl/⌘ + Enter 或点「运行」
  4. 点「复制」取走结果

常见问题

为什么 <br> 之后的内容缩进不对?
XML 里没有「可以不闭合的元素」这个概念,<br> 会被当成一个没闭合的开始标签。如果你处理的是 HTML,请改用 HTML 格式化工具,它会按 HTML 规范处理空元素。
注释会被删掉吗?
格式化模式原样保留;压缩模式会删除,XML 里注释不影响解析结果,压缩后体积更小。
标签没闭合会怎么样?
不报错,工具会按已有层级尽力排下去。这类输入建议先修好结构再看缩进,因为「看起来整齐」并不代表结构正确。
XML 会被上传吗?
不会。全部处理在浏览器内存里完成,页面不发任何请求,断网也能用。

相关工具