在线美化缩进、压缩单行、语法校验、XML 转 JSON,支持
<?xml?> 声明、注释、CDATA、DOCTYPE 的正确处理,实时统计元素数、属性数、嵌套深度与压缩率。
内置 pom.xml、beans.xml、Android 布局、RSS、SOAP、SVG 六种常见示例。
纯浏览器本地处理,内容不会上传服务器。
| 结构 | 处理规则 |
|---|---|
<?xml … ?> 声明 | 作为独立 token 单独占一行,永远输出在最顶部,不参与缩进计算。 |
<!DOCTYPE …> | 支持带内部子集 [ … ] 的写法,方括号内的 > 不会被误判为声明结束。 |
| 注释 | 整段保留并单独成行,缩进跟随当前层级;压缩时保留注释内容不做删除,避免丢失业务说明。 |
| CDATA 段 | 内部内容原样保留:不重新缩进、不转义、不压缩空白,因为 CDATA 里往往是脚本或富文本。 |
| 开标签 / 闭标签 | 开标签后缩进 +1,闭标签前缩进 −1,自闭合标签 <br/> 深度不变。 |
| 纯文本子节点 | <name>张三</name> 这种「开标签 + 单行文本 + 闭标签」会自动合并为一行,避免无意义的换行。 |
| 属性值中的尖括号 | 解析标签时会跟踪引号状态,属性值里的 > 不会导致标签被提前截断。 |
| 语法校验 | 调用浏览器原生 DOMParser 解析,通过检测 parsererror 节点判定,并把浏览器给出的原始错误信息完整展示。 |
& → &、< → <、> → >、" → "、' → '。裸露的 & 是最高频的解析报错原因。<Name> 和 </name> 不匹配,会直接报 mismatched tag。<?xml ?> 前面连一个空格或 BOM 都不能有,否则报 "XML declaration allowed only at the start"。]]>:需要拆成两段 CDATA 拼接。