不会联网取。这一页不向外部地址去取 DTD,也不做 DTD 与 Schema 校验,XSLT 转换同样不在能力里;能做的就六个动作:格式化、压缩、校验、转 JSON、提取属性、提取 CDATA。
DTD(Document Type Definition,文档类型定义)是写在文档外面的一份约束说明。XML(Extensible Markup Language,可扩展标记语言)文档开头常带一行指向它的声明,带着这行声明的文件照样能读能格式化,那行声明在这里既不会被下载也不会被核对。
一、六个动作各自管什么
六个动作对着下表看。产物里会碰到两种文本格式:CSV(Comma-Separated Values,逗号分隔值文本表)和 JSON(JavaScript Object Notation,一种结构化数据的文本格式)。
| 动作 | 实际做什么 | 明确不做的 |
|---|---|---|
| 格式化 | 按缩进把层级撑开,缩进默认 2 | 不改字段名、不补节点 |
| 压缩 | 去掉缩进与多余空白压成紧凑一段 | 不删属性、不合并同名节点 |
| 校验 | 只看结构本身通不通 | 不取外部 DTD,不做 Schema 校验 |
| 转 JSON | 层级结构换成 JSON(JavaScript Object Notation,一种结构化数据的文本格式)文本 | 不校验字段含义与类型 |
| 提取属性 | 把节点上的属性摊出来,可出 CSV 或 JSON | 不判断属性值是否合法 |
| 提取 CDATA | 把原样存放的那段字符数据取出来 | 不解析这串字符的内部结构 |
边界一句话:能整理并转换这份文档里已经写着的字符,不能联网补齐它引用的任何外部东西。
二、把一份文档处理干净的操作顺序
- 打开「XML转换」读入文件。这一页收 XML、XSD、XSL、XSLT、SVG、RSS、ATOM、PLIST、CONFIG、TXT 这些文本后缀。
- 编码选自动。会自动读文档开头那行声明里写的编码,也能手动指定 UTF-8 或 GBK,中文乱码时改这一项。
- 先跑一次校验,把明显的标签不闭合、根节点缺失这类结构问题处理掉。
- 需要给人看或给下游程序读,选格式化,缩进默认 2,需要更宽的行距再自己调。
- 只关心某几列值,走提取属性,产物选 CSV 还是 JSON 按下游决定。
- 文档里裹了一段脚本或一段转义文本,用提取 CDATA 单独拿出来。
三、为什么收 XSL、XSLT 却不转换
XSLT(一种把 XML 按模板转成别的版式的转换语言)文件本身也是 XML 文本,所以这一页能把它格式化、能校验它通不通、能把它转成 JSON 看结构。能处理这类文件的文本形态,不能执行它定义的转换规则。想要按模板换版式,得在有转换能力的地方做,这里不做那一步。同理,收 XSD 也只是把它当一份 XML 文本来读,不会拿它去校验另一份数据文档。
四、混合内容为什么不出乎意料地断行
这一页用的是自己写的字符级解析,遇到一个节点里既有文字又有子元素这种混合内容时,不会替你插换行。原因很直白:纯文本节点里多出来的换行会被原样保留,等于改了内容。
能保持字符内容与原文一致,不能顺手帮你把版面排得更松散,想好看请在格式化那一步用缩进解决,而不是给文本节点塞换行。
五、这几件事别做
- 不要因为文档里有外部声明就以为它被验证过了,这里既不下也不校,符合不符合约束要你自己判断。
- 不要把校验通过理解成数据没错,它只看标签闭合、层级完整这类语法事实,字段值对不对不在口径里。
- 不要指望转 JSON 后结构一比一,属性与子节点在 JSON 里的摆法和 XML 不同,下游按哪种读要先看产物。
- 不要拿它当渲染工具,要看图形版式请在浏览器或办公软件里另开。
常见问题
问:处理时会向外发起请求吗?
答:不会。这一步在浏览器里完成,文件不离开本机,不上传到服务器,也不去下载文档引用的外部定义。
问:要不要登录,占不占每日转换次数?
答:不用登录,也不占用每日转换次数,游客可以直接用。
问:RSS 订阅文件能一次处理几份?
答:这一页按一份文本处理一次,多份就逐个读进来、逐个导,产物也逐个存。
本站能力与限额说明
站内 XML转换,格式化、压缩、校验、转 JSON、提取属性、提取 CDATA 六个动作,编码自动读声明,属性提取可出 CSV 或 JSON。
能整理并转换文档里已有的字符,不联网取外部 DTD、不做 DTD 与 Schema 校验、不做 XSLT 转换。要处理的是纯层级数据而不是标记文档,改走 JSON格式化 那一站。
这一步在浏览器里完成,文件不上传到服务器,也不占用每日转换次数。