XML 格式化
按 token 重排 XML 缩进,CDATA、注释与文本节点原样保留;支持压缩成单行、标签不闭合定位到行列,浏览器本地处理。
功能特性
扫描阶段就把 CDATA、注释、DOCTYPE、处理指令当成不可分割的整体,内部含 >、< 或换行也不会被切开或重排。
父元素只要含实义文本就整段按混合内容处理,<p>Hello <b>x</b> world</p> 保持一行,不会凭空塞进空白。
按标签层级重排换行与缩进;空元素 <a></a> 与自闭合标签 <br/> 都留在同一行。
去掉标签之间的排版空白与换行并粘成一行,适合塞进配置项或做体积对比。
标签不闭合、属性引号缺失等直接给出「第 X 行第 Y 列」与原因,不会静默输出错结果。
校验与重排都在浏览器里完成,XML 不会上传服务器。
使用步骤
把待整理的 XML 贴到左侧,边输入边校验,出错即时提示行列。
格式化(保留注释)或压缩成单行;格式化时可选 2 / 4 空格缩进。
右侧实时给出结果,一键复制,或下载 .xml 文件。
适用场景
常见问题
格式化会不会改坏我的 XML?
不会。工具先做 token 级扫描,把标签、注释、CDATA、DOCTYPE、处理指令与文本分开,再只调整标签之间的换行与缩进,CDATA 与文本节点里的字符一个都不动。这也是它和「按 > < 直接切行」的写法最大的区别:后者会把 CDATA 与闭合标签粘成一行、把 <pre> 里的空格改掉。
压缩成单行会丢掉什么?
只去掉标签之间的排版空白与换行。标签、属性、CDATA、文本内容全部保留;如果文档依赖元素之间那个空格表达语义(某些 XHTML 行内元素),压缩后这处空白会消失。格式化模式不会动这类单行空格,只有整行的排版空白才会被重排。
含文本的标签会被拆行吗?
不会。只要一个元素的直接子节点里出现实义文本,这个元素就按混合内容处理,内部不再插入换行 —— <p>Hello <b>x</b> world</p> 整行保留,避免渲染结果多出空格。
校验报错能定位到具体位置吗?
可以,提示形如「第 1 行 第 11 列:Expected closing tag ...」,直接指到出问题的标签。
数据会上传到服务器吗?
不会。校验与重排全部在浏览器本地完成,关闭页面数据即消失。