XML 格式化工具

使用语法高亮和错误检测来格式化、验证和美化 XML 文档

本地运行

XML 输入

格式化输出

检查器

粘贴格式良好的 XML —— 结构统计、树形视图与元素路径会自动出现在这里

高级选项

与另一个 XML 对比

将此文档发送到 Data Diff,粘贴第二个版本即可看到变化。

带精确错误位置的验证

每次按键都使用浏览器 XML 解析器进行验证。格式良好时实时显示元素、属性、文本节点和深度的计数;出错时报告确切的行号、列号、可能原因,并在编辑器中高亮出错位置 —— 而不只是一句“格式不良”。

本工具精确定位的常见 XML 错误

以下四类错误占了绝大多数无效 XML。每一类都会给出出错位置和可能原因:

标签不匹配

<person> 用 </perso> 关闭。解析器报告“开始与结束标签不匹配”并给出两个标签所在行;高亮会跳转到出错位置。

标签未闭合

缺少 > 或缺少结束标签。通常在确切位置报“expected >”或“数据在标签 X 中过早结束”。

属性重复

同一元素上出现两次相同属性名,如 <item id="1" id="2">。报“属性重定义”并指向第二次出现的位置。

无效实体 / 裸露的 &

文本中的字面 & 或 < 必须转义(&amp;、&lt;)。解析器会在确切字符处报“EntityRef: expecting ;”或“格式不良”。

之前 / 之后

左侧是压缩的 API 响应,右侧是用 2 空格缩进格式化的同一份文档。结构统计、树形视图和元素路径都基于解析后的文档更新。

Before
<catalog><book id="1" category="fiction"><title>The Hobbit</title><author>J.R.R. Tolkien</author></book><book id="2" category="tech"><title>Refactoring</title><author>Martin Fowler</author></book></catalog>
After
<catalog>
  <book id="1" category="fiction">
    <title>The Hobbit</title>
    <author>J.R.R. Tolkien</author>
  </book>
  <book id="2" category="tech">
    <title>Refactoring</title>
    <author>Martin Fowler</author>
  </book>
</catalog>

XML 标准速查(W3C XML 1.0)

  • 良构 ≠ 有效:良构指标签嵌套与闭合正确;有效进一步要求文档遵循 DTD 或 XSD 架构。
  • 五个预定义实体:&lt; &gt; &amp; &quot; &apos; —— 文本中出现字面 < 或 & 一定是错误。
  • 元素与属性名区分大小写,可带命名空间前缀(ns:tag)。
  • 有且只有一个根元素;如存在 XML 声明(<?xml version="1.0" encoding="UTF-8"?>)必须位于最前。
  • 注释 <!-- … --> 中不能包含 -- ,也不能嵌套。

这份数据的下一步

格式化只是第一步。无需离开浏览器即可继续工作流:

常见问题解答

关于 Xml Formatter 格式化的常见问题解答

格式化工具执行格式良好性检查和基本验证。它按照 W3C XML 1.0/1.1 规范检查标签嵌套、属性语法和 XML 声明的合规性。

可以,内置的 XPath 测试器允许您针对 XML 文档编写和执行 XPath 1.0 和 2.0 表达式,高亮显示匹配的元素并即时展示结果。

支持,格式化工具能正确处理带有命名空间的 XML 文档,在格式化元素和属性时保留命名空间声明和前缀。

可以,转换功能支持在 XML 和 JSON 之间互相转换,使用智能映射来保留元素结构、属性和数据类型。

XML 格式化工具支持最大 50MB 的文件,采用优化的解析算法,适用于大型配置文件、SOAP 消息和数据交换文档。

命名空间声明(xmlns、xmlns:prefix)在缩进时被当作普通属性处理,绝不会被重新排序或删除,因此命名空间 URI 始终绑定到相同的前缀。格式化过程绝不会解析或改写前缀——下游工具会按照 W3C Namespaces in XML 推荐标准来解析它们。

格式化只是重新缩进并规范化元素之间的空白。验证则检查结构:标签是否配对、是否只有一个根元素、属性引号是否正确,以及符合 W3C XML 1.0 规范的实体语法。格式化工具会报告格式良好性错误(畸形的输入无法重新缩进),但不会依据 DTD 或 XSD 架构进行验证。

会——CDATA 块的内部内容将原样保留(这正是其用途:转义那些原本需要实体编码的文本),注释除周围缩进外保持不变。XML 声明和处理指令(例如 <?xml version="1.0"?>)也会保持原样停留在文档顶部。

{-- * External Resources Component(#19 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / 官方语言文档 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}

相关工具