← 全部工具

数据不出浏览器

XML Formatter — Beautify & Validate

免费 XML formatter。美化、压缩并校验 XML,全部在浏览器中完成。

格式化 XML 而不改变它的含义

XML 对空白的敏感程度和 JSON 完全不同。除 schema 另有规定外,元素之间的空白属于文本内容,所以重新缩进可能改变文档对某个消费方的含义——如果那个消费方把混合内容视为有意义的话。格式化是显示层面的改动,但并非总是语义中立。

「格式良好」和「有效」是两回事:格式良好的文档标签配对、属性加引号;有效的文档还要符合 schema 或 DTD。多数「XML 无效」的提示其实说的是格式良好性:标签未闭合、& 未转义,或闭合标签大小写与开标签不一致。

两个字符造成了大部分失败。除非用于引出字符引用,否则 & 必须写成实体;而文本里的小于号必须始终转义,因为解析器会把它当作标签的开始。从 feed 里复制标记再手工重新编码,正是这两个问题的常见来源。

常见问题

如何校验?
使用 DOMParser 解析;失败则显示错误。
支持超大文件吗?
适合中小型文档;超大 XML 可能较慢。
会上传吗?
不会。
为什么我的 XML 无效?
先检查格式良好性:所有标签按序闭合、属性都有引号、没有裸 &。文档也可能格式良好但不符合 schema 而「无效」,不过 schema 报错通常会点名元素或属性,而格式良好性报错会指出行号。
元素和属性有什么区别?
两者都承载数据,但只有元素能按结构化方式嵌套和重复。属性是扁平的、无序的,所以任何需要结构或顺序的内容都应放进子元素,属性更适合放标识符和简单元数据。
重新格式化会改变数据吗?
有可能。缩进会增加空白文本节点,从而改变逐字节比较的结果,并且对把混合内容视为有意义的消费方产生影响。必须原样保留空白时,内容应放进字符数据区,而不是普通文本里。

相关工具