XML 格式化工具 - 在线美化、压缩和校验 XML
在线格式化、压缩和校验 XML 文档,适合整理 SOAP 响应、RSS Feed、Sitemap、配置文件和接口调试数据。
功能特点
- 格式化 XML 缩进和层级结构,提升复杂节点的可读性
- 压缩 XML 内容,便于嵌入请求体、配置或日志片段
- 校验 XML 基础语法,辅助排查标签闭合、嵌套和转义问题
- 区分 XML 命名空间、CDATA、实体和格式化结果,并提醒格式化不会执行 XSD/WSDL 业务校验
- 适合处理 SOAP、RSS、Sitemap 和应用配置等 XML 场景
使用方法
- 粘贴需要处理的 XML 文档、接口响应或配置片段
- 先确认 XML 声明、字符编码、命名空间和是否包含 CDATA/实体,再选择格式化、压缩或校验
- 查看结果后,用 XSD/WSDL、接口文档或目标解析器验证字段和业务语义
- 复制整理后的 XML 到接口工具、配置文件或技术文档中
示例输入
SOAP 请求体
<Envelope><Body><GetUser><Id>42</Id></GetUser></Body></Envelope>适合展开层级并检查命名空间、节点闭合和 SOAP Body 结构。
Android / Maven 配置
<dependency><groupId>com.example</groupId><artifactId>sdk</artifactId><version>1.0.0</version></dependency>适合整理构建配置,快速发现标签嵌套和重复节点问题。
带属性的 XML
<user id="42"><name>Alice</name><role>admin</role></user>适合对照属性与子节点的区别,排查接口字段映射错误。
命名空间与 CDATA
<ns:note xmlns:ns="urn:example"><ns:body><![CDATA[<p>保留标签文本</p>]]></ns:body></ns:note>适合确认前缀绑定、URI 和 CDATA 内容边界;格式化不会把 CDATA 内容当作可执行 XML。
示例输出
SOAP 请求体
格式化后:<Envelope> <Body> <GetUser> <Id>42</Id> </GetUser> </Body> </Envelope>Android / Maven 配置
根元素:dependency;groupId=com.example;artifactId=sdk;version=1.0.0带属性的 XML
根元素:user;属性 id=42;子节点 name=Alice、role=admin命名空间与 CDATA
命名空间:ns -> urn:example;CDATA 内容保留为 <p>保留标签文本</p>,未当作子节点解析
常见错误
- XML 标签必须正确闭合和嵌套,大小写不同也会被视为不同标签。
- 命名空间前缀声明缺失或 URI 不一致时,文档看起来正确但业务解析仍会失败。
- 属性和子节点不是同一种数据结构,转换为 JSON 时可能出现字段形状差异。
- 外部实体和 DTD 不是普通格式问题;不可信 XML 交给服务端前必须确认已禁用外部实体解析。
- 格式化不会验证 XSD、SOAP WSDL 或业务字段约束。
适用场景
- SOAP 接口请求排查
- Maven / Android 配置整理
- XML 接口响应阅读
- 标签和命名空间校验
实操检查
核对 XML 格式化和压缩
固定输入:<root><user id="1"><name>Tom</name></user></root>;步骤:点击“格式化”,确认层级后再点击“压缩”;预期结果:格式化结果包含两空格的 user、四空格的 name 和闭合 root,压缩结果为 <root><user id="1"><name>Tom</name></user></root>;失败判断:标签层级丢失、属性值改变,或压缩后仍保留标签间换行空白。
核对 XML 无效输入处理
固定输入:<root><name>Tom</root>;步骤:点击“校验”,再点击“格式化”;预期结果:校验显示无效且错误信息非空,格式化清空输出并显示错误;失败判断:无效文档被标为有效、错误为空,或格式化保留上一次有效 XML 输出。
页面专属核验
使用前与操作中
- 先选择格式化、压缩或校验;三者都先经浏览器 DOMParser 判断 XML 是否良构,但不会按 XSD、SOAP、RSS、Sitemap 业务 schema 验证。
- 格式化会按元素层级缩进并折叠简单文本节点,压缩使用 XMLSerializer 后移除标签间空白;要保留注释、处理指令、CDATA 和混合内容时必须检查输出差异。
- 将“XML 有效”限定为当前解析器可解析;命名空间、属性、实体、编码声明和服务契约仍需在目标系统或专门 schema/接口测试中复核。
结果出来后
- 输入 `<root><user id="1"><name>Tom</name></user></root>` 格式化后,是否按两格缩进保留 root、user 属性和 name 文本,且没有把值改成 JSON?
- 输入带换行的 `<root>\n <name>Tom</name>\n</root>` 压缩后是否为 `<root><name>Tom</name></root>`;带不匹配闭合标签时校验是否返回可读错误?
- 一个能被 DOMParser 解析的 XML 是否还需要用目标 XSD、命名空间契约、字段语义和真实 SOAP/RSS/Sitemap 消费端验证,而不是直接视为业务有效?
相关工具
工具边界
- 工具主要处理 XML 文本格式和结构,不能替代 XSD、WSDL 或业务接口验证。
- 大 XML 文档可能受到浏览器内存和输入长度限制。
- 来源不可信的 XML 不应直接交给生产解析器,需关注实体和外部资源风险。
与相似工具的区别
- JSON 工具:XML 保留属性、命名空间和混合内容;JSON 更轻量,适合多数现代 API,但不能无损表达所有 XML 结构。
安全与兼容性
- 页面仅处理粘贴的 XML 文本,不会解析远程实体或访问文档中引用的网络资源。
- 将不可信 XML 交给服务端时应禁用外部实体和 DTD,避免 XXE、文件读取及实体扩展攻击。
下一步排查
- 先确认 XML 声明、编码、标签闭合和命名空间。
- 再用文本对比定位与接口文档或上一版本响应的结构差异。
- 最后在目标 SOAP、构建或业务服务中用真实协议校验。
常见问题
XML 格式化后为什么接口仍报错?
还需检查命名空间、编码声明、XSD/WSDL 约束、必填字段和 SOAP Header,排版本身不会改变业务结构。
XML 属性和子节点应该怎么选?
取决于接口协议和数据模型;不要仅为格式好看而互换,否则可能改变序列化后的字段含义。
XML 格式化为什么不能证明接口可用?
格式化和基础语法校验只能说明文本结构可读或基本上良构;接口还要验证命名空间、XSD/WSDL、认证、必填字段、业务状态和真实服务响应。