XML 格式化与压缩
这个工具能做什么
XML 多半是机器给的,挤在一整行里:一份 RSS 订阅、一张站点地图、一个 API 响应、一个配置文件。这个页面把结构还回去让你能读,需要小体积时再把它拿掉。
使用方法
- 1 粘贴 XML——整份订阅或者一个元素都行。
- 2 选好缩进,然后点格式化或压缩。
- 3 文字会在同一个框里变化——复制它,或者点撤销。
XML 不是 HTML,这个差别会咬人
在 HTML 里,有那么几个元素永远不闭合:<link>、<br>、<img>。而在 XML 里没有谁是特殊的——偏偏 <link> 出现在网上每一份 RSS 订阅里,裹着一个网址。把 HTML 规则带进 XML 的格式化器,会从那里开始把缩进整体挪错一级,还让闭合标签落了单。这个页面把那条规则关掉了。
CDATA 是内容,不是标记
CDATA 段的存在,正是为了让一段文字可以带着尖括号而不被解析。订阅源一直用它来放文章的 HTML。它的内容在这里原样通过:不重新缩进、不转义、不压缩空白——因为这里面任何一项,都会改变订阅方读到的东西。
元素之间的空白通常无所谓,文本里的不是
两个标签之间的缩进对解析器毫无意义,所以压缩会把它去掉。但在混合内容里——文字中夹着元素——一个空格就是数据的一部分,这个工具会保留它们。这是保守的选择:一个订阅阅读器显示「一二」而不是「一 二」,这种 bug 没人会追查到格式化工具头上。
它只格式化,不做校验
漏掉的闭合标签或者一个孤零零的 & 也会跟着一起被缩进——这个工具处理的是文本,不是解析后的文档。这是有意的:一个悄悄替你修好文件的校验器,恰恰藏起了你打开它要找的东西。如果输出看着不对,去找它刚刚让你看见的那处不匹配。
XML 格式化 - 常见问题
可以,而且这正是人们打开这个页面最常见的两个理由。两者都是纯 XML,通常都挤在一行里,而且都含有 <link> 元素——正是按 HTML 思路写的格式化器会弄错的地方。订阅条目里的 CDATA 块原样通过。