UltKit

CSV转XML转换器

把CSV文件的每一行包装成XML元素,方便只能读取标记语言的程序导入。表头行决定标签名,分隔符自动识别,会破坏XML结构的字符也会被自动转义。

数据转换器

或将CSV, TSV, TXT … 文件拖放到此处 ·

单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除

输出

文件在我们的服务器上处理,并在 30 分钟后删除。

使用方法

  1. 1

    上传CSV文件

    拖入一个或多个 .csv、.tsv 或带分隔符的 .txt 文件,每次最多 20 个,单个文件最大 95 MB。逗号、分号、制表符和竖线会自动识别。

  2. 2

    设置根标签

    在高级设置下,把 XML 根标签从 rows 改为导入时要求的名称,例如 catalog 或 contacts。如果 CSV 来自旧版 Windows 程序,请选择合适的文本编码。

  3. 3

    转换为XML

    点击转换为 XML并下载文件。建议先用浏览器打开:如果以树形结构显示,说明格式正确。

为什么要把CSV转换为XML

CSV 是数据从系统导出时常用的格式;直到 2005 年 10 月它才以 RFC 4180 的形式被正式记录,而程序之间交换它已经有几十年了。XML 则常常是数据必须送达时的格式。为 Adobe InDesign 准备数据的目录设计师、用 XSLT 样式表把记录转成 HTML 报表的开发者、把供应商清单导入 Microsoft Access 的办公人员:他们手里都是电子表格导出的行数据,而工具需要的是标签。

手动处理需要写脚本或做很长的查找替换,而且都容易漏掉难处理的情况:带 & 符号的公司名、内含换行的带引号字段、欧洲版 Excel 保存的分号分隔文件。本转换器会先正确解析 CSV,再写出标记。如果数据仍在工作簿里,可以用 Excel 转 XML,直接跳过 CSV 这一步。

CSV转XML示例:特殊字符转义

带引号字段和 & 符号的分号分隔 CSV,根标签设为 suppliers
name;city;since
"Hart & Sons; Ltd";利兹;1998
Nordlicht GmbH;不来梅;2011

<?xml version="1.0" encoding="UTF-8"?>
<suppliers>
  <row>
    <name>Hart &amp; Sons; Ltd</name>
    <city>利兹</city>
    <since>1998</since>
  </row>
  <row>
    <name>Nordlicht GmbH</name>
    <city>不来梅</city>
    <since>2011</since>
  </row>
</suppliers>
格式正确的 XML良构性 · 可解析的 XML
遵守 XML 1.0 规范语法规则的 XML:只有一个根元素,每个开始标签都有对应的结束标签,标签正确嵌套,属性值加引号,文本中的 & 和 < 经过转义。解析器遇到第一个错误就必须停止,所以一个多余的 & 符号就可能导致整个文件被拒绝。格式正确不等于有效,后者还要求符合 XSD 等 schema。

CSV转XML转换器的限制

每批 CSV 文件数
20
单个文件上限
95 MB
根标签的字符数
64
上传文件将被删除
30 分钟

CSV与XML格式要点

CSV

逗号分隔值

CSV 是一种用于表格的纯文本格式,每一行是一条记录,列之间用逗号分隔。它从计算机早期就开始使用,RFC 4180 对其作了说明,不过许多变体使用分号或制表符,文本编码也各不相同。几乎所有电子表格、数据库和分析工具都能导入和导出 CSV,因此它是在系统之间传输数据的默认格式。CSV 只保存数值,不包含公式、格式、多个工作表或数据类型。

压缩方式
–
透明度
–
动画
–
发布年份
–
CSV 转换器

XML

可扩展标记语言

XML 是 W3C 于 1998 年发布的结构化数据标记语言。它使用带属性的嵌套标签,并支持模式、命名空间和验证,因此适合处理复杂文档。RSS 订阅、SVG、Office 文档、站点地图以及许多企业和政府的数据交换都以它为基础。XML 比 JSON 冗长,但所有编程语言和许多电子表格工具都能读取。

压缩方式
–
透明度
–
动画
–
发布年份
1998 · W3C
XML 转换器

当扁平的导出数据需要进入基于标记语言的流程时,就要把 CSV 转成 XML:例如 XSLT 报表、支持 XML 导入的排版工具、数据库的 XML 加载器,或解析器拒绝任何格式不正确内容的集成系统。

代价是用体积换结构。CSV 没有类型,没有嵌套,文件内也无处声明所用编码,但它很紧凑。XML 每行会把每个列名写两次,并在第一行声明编码。如果接收程序比较新,JSON 通常比 XML 更轻;当 JSON 数据需要对接只支持 XML 的系统时,可以参考 JSON 转 XML。

CSV转XML常见问题

CSV转出的XML可以导入哪些程序?

凡是能读取通用 XML 的程序都可以:通过“外部数据”导入的 Microsoft Access、用于数据驱动排版的 Adobe InDesign XML 导入、把数据转成报表的 XSLT 处理器,以及基于 XML 解析器自行开发的内部工具。每一行都会作为一个 row 元素,放在你设置的根标签之下。

接收方要求记录标签用product而不是row,可以修改吗?

记录元素固定为 row,外层元素可通过 XML 根标签重命名。如果严格的 schema 对记录元素使用了不同的名称,可以用一行 XSLT 模板,或对 <row> 和 </row> 做查找替换来改名。

值里面的逗号和引号会怎么处理?

转换时会先按引号规则解析 CSV,因此 "Smith, Jane" 仍是一个值。在 XML 中逗号无需转义,而 & 和 < 会变成 &amp; 和 &lt;。

欧洲版Excel导出的分号分隔CSV,分隔符会有影响吗?

自动检测除逗号外,也能识别分号、制表符和竖线。如果文件列数很少导致判断出错,请把分隔符明确设为分号,再转换一次。

CSV没有表头行怎么办?

关闭首行为表头。这样各列会按顺序使用通用名称,包括第一行在内的每一行都会成为一条记录。之后可以重命名标签,或在 CSV 中加一行表头后重新转换。

XML文件会比CSV大吗?

会,通常会大好几倍,因为每个值都被一对开始和结束标签包住,且每一行都重复。如果在意大小,可以关闭格式化输出以去掉缩进和换行,或在发送前把文件压缩成 ZIP。