把 XML 里同级的子元素按标签名排序,可选同时排序属性,再重新缩进输出。用来把两份「逻辑一样但顺序不同」的 XML 规范化后再做 diff,或整理杂乱的配置文件(strings.xml、pom.xml 之类)。
| 原始 | 升序结果 |
|---|---|
<root><beta>b</beta><alpha>a</alpha></root> |
<root> <alpha>a</alpha> <beta>b</beta></root> |
localeCompare 带 numeric 选项(item2 排在 item10 前面)。<u id="1" age="20"> → <u age="20" id="1">。DOMParser,不是良构的 XML(标签未闭合等)会报错并提示。ns:a 按字面比较),不做命名空间感知的归组。相关:XML 格式化 · XML 转 JSON · JSON 排序 · XPath 测试 · 文本对比。
会改变元素顺序,语义依赖顺序的 XML 排序后可能不等价。