免费转换器

XML 格式化 与验证工具

在浏览器中即时格式化、美化和验证XML。无需上传 — 完全私密且免费。

将XML文件拖放至此

支持.xml文件。或在上方区域粘贴您的XML。

关于此工具

XML 格式缩进嵌套元素,使文档层次结构变得可见。紧凑的 XML——所有内容都在一条线上——在技术上是有效的并且对于传输有用,但对于人类来说是不可读的。格式化 XML 在元素之间添加换行符,并在父元素内缩进子元素,使其可手动扫描、区分和编辑。

该格式化程序使用 DOMParser 解析输入以确认格式良好,然后遍历生成的 DOM 以发出缩进输出。注释、处理指令和 CDATA 部分均被保留。自闭合标签(没有子标签的标签)保持紧凑在一行上;带有子项的标签分布在多行中,并且子项缩进。

两个空格缩进是默认值,符合最常见的 XML 约定。格式化程序在重新格式化方面是保守的:保留现有结构,仅元素之间的空白发生变化。在格式化之前和之后,数据通过任何 XML 解析器进行相同的往返。

为什么要格式化 XML

紧凑的 XML 不可读。 SOAP 响应、RSS 提要和许多配置文件以单行 XML 形式到达,该 XML 在技术上是有效的,但实际上是不透明的。格式化揭示了文档结构,让您可以定位特定元素,并使版本控制中的差异变得有意义。

格式化还可以作为有效性检查。如果 XML 在格式化过程中无法解析,错误消息会指出问题 — 通常是未闭合的标签、不匹配的元素名称或无效字符。在发送给严格的使用者之前捕获 XML 错误可以节省调试时间。

使用方法

粘贴 XML,单击格式。

  1. 添加 XML 输入: 粘贴 XML 文本或删除 .xml 文件。格式化程序接受任何格式良好的 XML — 文档、片段、RSS 提要、SOAP 信封。
  2. 选择缩进: 默认为 2 个空格。如果您的团队惯例更喜欢使用 4 个空格或制表符。
  3. 格式: DOMParser 构建一个 DOM,格式化程序遍历它,并发出缩进的 XML。注释、CDATA 和处理指令均被准确保留。保留文本节点内的空白(无法安全地添加或删除重要的空白)。
  4. 复制或下载: 将格式化的 XML 复制到剪贴板或另存为 .xml。输出格式良好,解析方式与输入相同。

常见用例

技术细节

DOMParser 生成 XML DOM。格式化程序以深度优先的方式遍历树,发出开始标签、缩进的子标签和结束标签。元素属性保留在开始标签上;属性顺序与源匹配。

文本节点内的重要空白被保留 - 格式化程序无法安全地更改内容空白,因为它可能是有意义的(XML 空间保留规则因模式而异)。仅元素之间的空格发生变化。

自闭合元素(无子元素)发出为 <tag attr="val"/>。仅包含文本内容的元素以 <tag>text</tag> 形式发出。具有子元素的元素会在具有缩进子元素的多行上发出。 CDATA 部分、注释和处理指令与其原始分隔符和内容一起发出。

最佳实践

常见问题

这会检测到哪些 XML 错误?
该工具可以检测未闭合的标签、不匹配的开始/结束标签、无效的字符引用、丢失的根元素、格式错误的属性和编码问题。错误消息包含行号,可帮助您定位问题。
格式化会改变 XML 内容吗?
格式设置仅调整元素之间的空白和缩进。元素内容、属性、CDATA 部分和处理指令均按输入的原样保留。
它可以处理大型 XML 文件吗?
该工具可在浏览器中处理高达几兆字节的文件。对于非常大的 XML 文档 (50MB+),请考虑使用 xmllint 等命令行工具以获得更好的性能。
它支持 XML 命名空间吗?
是的。格式化程序可以正确处理命名空间声明 (xmlns)、前缀元素和默认命名空间。命名空间保留在格式化输出中。
命名空间是否被保留?
是的。 xmlns 和 xmlns:prefix 属性保留在源中出现的元素上。
我可以将 XML 缩小为一行吗?
一些 XML 格式化程序提供缩小功能。该工具专注于格式化;可以通过使用正则表达式或专用工具去除元素之间的空格来生成缩小的 XML。
我的 XML 是否上传到服务器?
不会。DOMParser 在您的浏览器中运行;格式化程序在您的浏览器中运行。
文本节点内的空白会改变吗?
不会。文本节点空白会被保留,因为 XML 空间保留规则因模式而异。格式化程序仅更改元素间的空白。