# 如何格式化并检查 XML

无需上传即可重新缩进 XML，找到解析错误的位置，并了解文档转换为 JSON 后有哪些变化。

[打开XML 格式化](https://abox.tools/zh/xml-formatter/): 排开了好读的 XML，压平了好发的 XML，还有两个方向的 JSON 转换。这些都不会粘进别人的服务器。

最后更新 2026年10月12日

## 粘贴或导入 XML

打开格式化工具，粘贴 XML 或选择文本文件。缩进可选两个空格、四个空格或制表符，也可选择压缩输出。解析成功后复制或下载当前结果。输入变化时，旧结果立即失效，工具会检查新内容。

解析器在本地运行，检查文档语法；不会验证 XSD 或 DTD，不保证配置适用于你的应用，也不会访问文本中的 URL。

![XML 输入及其 JSON 映射，展示属性、字符串值和重复元素。](https://abox.tools/screens/format-and-check-xml/mapping.webp)

属性变成@region，port 保留为字符串，重复的 feature 元素变成数组。

## 定位解析错误

未闭合标签、结束标签不匹配或无效字符引用会停止格式化和转换。使用跳转到错误将光标移至报告的位置。文档需要一个外层元素：两个根元素或根元素外的文本都会被拒绝。

```
<settings>
  <port>8080</port>
</settings>
```

DOCTYPE 文本原样保留，不解析外部实体；声明中出现文件或网站名称不会加载它们。

## 重新缩进前了解空白处理

文本值、CDATA 和混合内容元素会保留文本。仅位于子元素之间的空白会被当作布局处理，除非适用 `xml:space="preserve"`。这样便于阅读配置，但若应用将这些空白当作数据，复用前需要检查结果。

## 了解 XML 转 JSON 的变化

阅读结果前先选择转换方向。属性变成以 `@` 开头的键，重复元素变成数组，其他内容旁的文本使用 `#text`。XML 值仍是字符串：`<port>8080</port>` 不会被推断为数字。

JSON 映射会丢失注释，以及混合文本和子元素的交错顺序。因此转回 XML 不保证还原原文。请保存原始副本，并对比应用使用的字段。

只格式化 JSON、不进行上述映射时，请使用 [JSON 格式化工具](https://abox.tools/zh/json-formatter/)。
