XML Formatter|美化和验证XML的工具
XML formatter:在浏览器中美化和验证XML。支持压缩、可配置缩进和文件下载。
什么是XML Formatter?
XML Formatter是一款基于浏览器的工具,可将原始或压缩的XML转换为正确缩进的可读输出。开发者和数据工程师经常遇到压缩成一行的XML — 从终端复制的SOAP响应、Maven POM文件、Spring配置快照、RSS订阅源或设计工具导出的SVG文件。不经格式化阅读这些内容既慢又容易出错。
该工具通过使用浏览器的原生DOMParser验证XML,然后应用可配置间距的整洁缩进来解决这个问题。验证失败时显示精确的解析器错误消息。如果XML有效,格式化结果可一键复制或下载。一切在浏览器中完全运行 — 不向服务器发送数据,无需创建账户,工具完全免费。
主要功能
- 自定义缩进格式化XML(2或4空格) — 从操作栏的下拉菜单中选择缩进大小。工具会在会话期间记住上次使用的缩进大小;支持者可将其保存为默认预设。
- 带错误消息的XML语法验证 — 使用
application/xmlMIME类型通过浏览器原生DOMParser运行验证。如果在结果文档中发现parsererror节点,则在输出面板下方显示原始解析器错误文本。 - 压缩XML(去除空白) — 生成删除了所有标签间空白的压缩XML,适合嵌入有效载荷、日志行或配置字符串。
- 复制格式化输出到剪贴板 — 使用Clipboard API,为API不可用的环境提供textarea回退。
- 下载为.xml文件 — 以
application/xmlMIME类型将输出保存为formatted.xml。 - 键盘快捷键 — Ctrl+Enter(Mac上为Cmd+Enter)触发Format;Ctrl+Shift+M(Mac上为Cmd+Shift+M)触发Minify。
如何使用XML Formatter
第1步:粘贴XML
在/developer/code/xml-formatter打开工具。将XML文档粘贴到左侧的输入面板中。文本区域使用等宽字体,高度可调整,接受浏览器能够舒适处理的任何文档大小。工具不限制粘贴大小。
第2步:选择缩进
在两个面板下方的操作栏中,打开缩进下拉菜单并选择2空格或4空格。2空格缩进在前端和JavaScript相关工具中很常见。4空格在Java、C#以及XSLT和XSD等许多企业XML标准中是惯例。
第3步:点击Format
点击Format或按Ctrl+Enter / Cmd+Enter。工具首先使用DOMParser验证输入。如果XML格式错误,输出面板下方会出现红色错误消息,显示浏览器的解析器错误(例如:"error on line 5 at column 12: Opening and ending tag mismatch: config line 1 and value")。验证通过后,格式化的XML将显示在右侧只读输出面板中。
输入示例(单行Maven依赖):
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>3.2.1</version><scope>compile</scope></dependency>
2空格缩进的输出:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.2.1</version>
<scope>compile</scope>
</dependency>
第4步:压缩(可选)
点击Minify或按Ctrl+Shift+M / Cmd+Shift+M将XML压缩为最小单行表示。压缩也会首先通过验证器 — 工具不会从无效XML生成压缩输出。这可防止意外压缩结构中某处存在隐藏错误的文档。
第5步:复制或下载
点击Copy将格式化或压缩的输出放入剪贴板。点击Download将formatted.xml保存到下载文件夹。两个按钮在输出面板包含内容之前都处于禁用状态。
实用示例
清理SOAP响应
您的服务监控工具为简洁起见将原始SOAP响应记录在一行。您需要阅读一个错误响应来处理支持工单:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>Authentication failed: token expired</faultstring></soapenv:Fault></soapenv:Body></soapenv:Envelope>
粘贴,点击Format。嵌套结构立即变得清晰 — Fault元素在Body内,Body在Envelope内,faultcode和faultstring的值现在都在各自可读的行上。
审查Spring配置文件
同事发给您一个删除了所有空白的Spring applicationContext.xml片段。与其手动插入换行符和缩进,不如将其粘贴到格式化工具中,按照团队惯例点击4空格缩进的Format。格式化输出可以直接粘贴回源文件。
为API有效载荷压缩XML
您的集成规范要求将XML作为JSON字段中的字符串值嵌入,并删除所有空白以减小有效载荷大小。粘贴格式良好的源XML并点击Minify。输出是标签之间没有空格的单行,可以嵌入或URL编码。
提示和最佳实践
编辑前先验证。 如果您要编辑一个有几百行的XML文件,先将其通过格式化工具处理。红色错误消息会在您投入时间进行更改之前立即告诉您当前状态是否有效。
格式化工具处理CDATA节。 <![CDATA[...]]>块内的内容在格式化过程中保持原样。格式化工具不会尝试缩进CDATA节的内容,这意味着CDATA内的嵌入代码或自由文本保持完整。
自闭合标签保持自闭合。 格式化工具正确识别自闭合标签(如<br/>、<input type="text"/>),不会将其转换为开放/关闭对,反之亦然。
XSD和XSLT使用4空格缩进。 这些XML方言按惯例具有深层嵌套。4空格缩进与2空格相比,让结构层次在一眼之间更清晰可见。
复制后在编辑器中打开。 格式化后,点击Copy直接粘贴到代码编辑器中。格式化文本是纯UTF-8,没有不可见字符,可以干净地导入任何编辑器。
常见问题及故障排除
命名空间较多的文档出现"Invalid XML syntax"错误 — 某些XML处理工具生成浏览器DOMParser能正确处理但在某些平台上报告为警告的命名空间声明。如果您看到"Namespace prefix ns0 is not defined"之类的错误,请确认根元素中存在命名空间声明并重试。
格式化输出有意外的额外空行 — 格式化工具将>\s*<替换为>\n<后在\n上分割。标签之间已有换行符的文档在某些边缘情况下可能会产生额外的空行。使用Minify按钮然后再次Format来规范化空白。
错误消息很长并包含HTML — 浏览器的DOMParser包含XML解析器的完整错误文本,当解析器嵌入HTML错误页面时偶尔会包含HTML标记。关键信息(行号和列)始终在消息的前两行。
Minify按钮产生输出但Format按钮显示错误 — 这不应该发生,因为两个操作都首先通过相同的验证器。如果遇到这种情况,通常意味着XML在压缩时是有效的,但操作之间输入已更改。清除两个面板重新开始。
输出面板空白且无错误消息 — 这意味着点击Format时输入为空或仅有空白。输出面板下方将显示错误消息"Please enter XML to format"。
隐私和安全
XML Formatter完全在您的浏览器中运行。所有格式化和验证都通过JavaScript和浏览器的原生XML解析器进行 — 您输入的任何文本都不会发送到外部服务器。该工具对包含认证令牌、私有配置值、内部API端点、个人身份信息或任何其他敏感内容的XML文档都是安全的。初始页面加载后,该工具在没有网络连接的情况下也能工作。
常见问题
XML Formatter是免费的吗? 是的,完全免费。没有使用限制,不需要账户,格式化或验证操作没有费用。Glyph Widgets支持者功能(预设保存、会话历史、工具笔记)可供Ko-fi支持者使用,但核心XML格式化功能不受限制。
支持离线使用吗? 是的。所有操作都在您的浏览器中使用JavaScript和浏览器的内置XML解析器运行。页面加载后,您可以断开互联网连接,继续格式化和验证XML而不中断。
我的数据安全吗? 是的。粘贴的XML永远不会传输到服务器。它在会话期间保留在浏览器的内存中,当您点击Clear按钮或关闭标签页时被清除。
验证器能检测哪些类型的XML错误? 验证器使用application/xml解析的浏览器原生DOMParser,可检测未关闭标签、开闭标签名不匹配、无效命名空间声明、格式错误的属性语法、非法字符和重复属性名。
格式化工具支持XML声明和处理指令吗? 是的。<?xml version="1.0" encoding="UTF-8"?>声明和<?xml-stylesheet type="text/xsl" href="style.xsl"?>等处理指令在格式化过程中保留在原始位置。
能格式化SVG文件吗? 能。SVG是格式良好的XML,可以正确格式化。格式化工具保留所有SVG元素嵌套、属性值(包括d路径数据)和命名空间声明。请注意,<path>元素内的d属性值包含格式化工具不会修改的坐标序列。
Format和Minify有什么区别? Format添加缩进和换行符使文档便于人类阅读。Minify删除标签间的所有空白以生成最小可能的表示。两个操作都先验证XML,如果输入无效则拒绝生成输出。
能在XHTML文档上使用吗? 能。XHTML是有效的XML,可以正确解析和格式化。不是格式良好XML的HTML5文档(如缺少关闭标签、未加引号的属性)将验证失败。
格式化的键盘快捷键是什么? Windows/Linux上Ctrl+Enter,macOS上Cmd+Enter。压缩使用Windows/Linux上的Ctrl+Shift+M或macOS上的Cmd+Shift+M。
格式化工具会更改属性顺序吗? 不会。元素内的属性顺序保持不变。格式化工具只在元素之间添加缩进和换行符 — 不会重新排序或修改属性值。
相关工具
JSON Formatter — 使用相同的缩进控件格式化、验证和压缩JSON,另有模式验证、模式生成和树形查看器。
YAML Formatter — 格式化YAML文件并可选转换为JSON输出。
立即试用XML Formatter:XML Formatter