XML 转换
在线处理 XML:格式化缩进与压缩、well-formed 校验并定位出错行列、XML转JSON、提取全部属性与 CDATA 内容,用自写解析器逐字符扫描而不依赖浏览器 DOM,文件不上传服务器。
拖放 XML 文件到这里
支持 .xml .xsd .xsl .svg .rss .atom .plist 等 XML 文本(最大 20MB)· 也可以直接粘贴内容 · 文件不上传服务器
格式化选项
元素与文字交错的混合内容整块保持在同一行,不插入换行,避免改动文本语义。
校验范围
标签闭合与嵌套顺序、属性引号是否成对、属性是否重复、是否只有一个根元素、注释与 CDATA 是否正确闭合、实体引用是否合法、文本里有没有裸露的 < 与 &。
不联网获取外部 DTD 与外部实体,不做 DTD / Schema 有效性校验,不做 XSLT 转换。
使用方法
- 1 把 XML 文本粘贴到输入框,或拖入 .xml、.xsd、.svg、.rss 等文本文件。内容只在浏览器里处理,不会上传。
- 2 点「格式化」按所选缩进展开,或点「压缩」去掉标签之间的空白;文件不合法时会提示出错行列与原因。
- 3 需要给程序用时点「转 JSON」,需要清点属性或取出 CDATA 内容时用对应的提取按钮。
- 4 点「下载结果」保存文件,或「复制结果」直接粘贴回编辑器。
支持范围与限制
| 项目 | 说明 |
|---|---|
| 处理方式 | 全程在浏览器本地完成,文件不上传服务器,不占用每日转换次数,也不需要登录 |
| 解析方式 | 自写事件式解析器逐字符扫描,不用 DOMParser,因此几 MB 的文件也不会让页面长时间失去响应 |
| 格式化 | 按嵌套层级缩进(2 空格、4 空格或 Tab);元素与文字交错的混合内容整块保持在同一行,避免改动语义 |
| 压缩 | 去掉标签之间的空白与换行,文本节点内部的空格不动 |
| 校验范围 | 检查标签闭合与嵌套顺序、属性引号是否成对、是否只有一个根元素、注释与 CDATA 是否正确闭合、实体引用是否合法,并给出行号与列号 |
| XML转JSON | 属性以 @ 前缀、文本以 #text 表示,同名兄弟节点自动转为数组,CDATA 按文本处理;命名空间前缀按字面名输出,不解析其含义 |
| 属性提取 | 列出「元素路径 → 属性名 = 值」,可导出为 CSV 或 JSON |
| CDATA提取 | 按出现顺序导出所有 CDATA 段的文本内容 |
| 不支持 | 不联网获取外部 DTD 与外部实体,不做 DTD/Schema 有效性校验(只判断格式是否合法),不做 XSLT 转换 |
| 文件大小 | 建议 20MB 以内;内容超过 5000 行或 200KB 时输入输出框只显示前 500 行预览,处理与下载按完整内容执行 |
文件安全说明
| 处理方式 | 全程在你的浏览器里完成,页面不会把文件提交到服务器 |
| 服务器副本 | 不产生,也没有上传文件或结果文件需要清理 |
| 每日次数 | 不占用免费转换次数,也不需要登录 |
| 网络请求 | 页面加载完成后不再有与文件相关的网络请求,断网也能继续处理本地文件 |
文件大小上限与支持的格式见上方「支持范围与限制」。
常见问题
文件会上传到服务器吗?
不会。解析、格式化与下载全部在浏览器里完成,没有与文件相关的网络请求,服务器不留副本,也不占用每日免费次数、不需要登录。
为什么不用浏览器自带的 XML 解析器?
DOMParser 会把整个文档建成 DOM 树,几 MB 的文件就可能让页面卡住十几秒,而且它给出的错误信息只有一句话、没有行列号。这里用自写的逐字符解析器,边扫描边记录行列,出错时能直接指出位置,大文件也只占用少量内存。
XML转JSON 后属性为什么多了个 @?
XML 的属性和子元素是两种东西,转成 JSON 后都需要占一个键,因此约定属性加 @ 前缀、元素的文本内容用 #text。同名兄弟节点会合并成数组,避免后一个覆盖前一个。这是常见约定,程序里按这个规则取即可。
格式化会不会改变文件含义?
只改动标签之间的空白。元素与文字混排的内容(例如 <p>你好<b>世界</b></p>)整块保持在同一行,不会插入换行,因为在那种情况下空白属于文本内容,改动会影响显示。
提示「根元素之外还有内容」是什么意思?
合法的 XML 只能有一个根元素,根元素结束后除了注释与处理指令不能再有别的标签。常见原因是把两段 XML 拼在了一个文件里,或者缺少最外层的包裹标签。
能做 Schema 或 DTD 校验吗?
不能。本工具只判断文件是否 well-formed(格式合法),不联网下载 DTD 与 Schema,也不校验元素出现次数、数据类型这类有效性规则。
能处理 SVG、RSS、pom.xml 这类文件吗?
可以,它们本质都是 XML 文本,格式化、压缩、校验与转 JSON 都适用。SVG 需要转成 CAD 图纸请用「SVG转DXF」。
CDATA 里的内容为什么提取出来是纯文本?
CDATA 段的作用就是告诉解析器「这里面不要当标记处理」,因此提取时只取其中的文本,<![CDATA[ 与 ]]> 这两个边界标记会被去掉。
相关工具
- JSON格式化 在线格式化 JSON:美化缩进、压缩成一行、校验并定位出错的行列、按键名递归排序、转义与反转义、JSON转CSV,全程在浏览器里完成,数据不上传服务器。
- TXT处理 在线处理 TXT 文本:自动识别 GBK 与 UTF-8 编码、统一 CRLF 或 LF 换行符、删除重复行与空行、按行排序、查找替换,并给出行数字数统计,文件不上传服务器。
- CSV转换 在线转换 CSV:CSV转JSON、CSV转TSV(可直接粘进 Excel)、导出带 BOM 的 UTF-8 CSV 解决 Excel 打开中文乱码,自动识别分隔符,支持筛选列与提取表头,文件不上传服务器。
- SVG转DXF 在线将 SVG 矢量图转换为 DXF 图纸,输出 AutoCAD R2000 格式,曲线可按精度拟合,免费使用、无需安装 CAD 软件。