CSV 转 XML 转换器

粘贴 CSV/TSV 数据,即可转换为将每一行作为一条记录的 XML(格式为 值...)。

CSV 转 XML 是什么

需要把表格数据以 XML 形式处理的场景至今依然存在:老牌业务系统的导入规格、报表引擎的输入、以及部分 API。本工具只要粘贴 CSV 或 TSV,就能把每一行转换成一条记录的 XML。输出采用 `<列名>值...` 这样直观的结构,可以直接交给 XSLT 或解析器。

第一行会被读作表头,各列的标题会用作标签名。不过 XML 的标签名有限制,因此**以数字开头、为空、或含有不可用字符的标题,会自动替换为 `column1`、`column2` 这样的连续编号。** 值中包含的 `&` `<` `>` 会转义为实体引用。所有处理都在浏览器中完成,因此像客户信息这类不希望外传的数据也可以放心处理。

把 CSV 转换成 XML 的步骤

  1. 粘贴 CSV 或 TSV 第一行作为表头,第二行以后作为数据读取。也支持制表符分隔。
  2. 确认标签名 标题会直接成为标签名。中文标题无法用作标签名,会被替换成编号,请留意这一点。
  3. 查看生成的 XML 最顶层是 ``,每一行作为 `` 排列其中。
  4. 复制后交给下一步处理 可以直接用于 XSLT 整形,或作为接收 XML 的系统的输入。

用好本工具的小技巧

  • 启用"将首行作为表头处理"后,表头行的列名会直接用作 XML 标签名(若列名不符合 XML 标签命名规则,例如以数字开头或包含符号,则会自动回退为 `column1`、`column2` 等)。
  • 如果不使用表头,则所有行都会被视为数据行,各列会使用 `column1`、`column2` 等标签名。
  • 在需要 XML 而非 CSV 的场景中使用本工具,例如传统的基于 XML 的 API、SOAP 对接,或部分业务系统的数据导入。
  • 生成的 XML 会通过字符实体引用(&amp;、&lt;、&gt;)安全转义特殊字符,可直接导入外部系统。

这些场景会用到

导入只接受 XML 的系统

可以把用电子表格做好的数据,整理成要求 XML 的核心系统能接收的形式。

制作报表引擎的数据源

许多报表引擎以 XML 作为数据源,从 CSV 可以快速做出试作品。

准备 XSLT 的练习数据

编写转换样式表时,可以立刻从手头的表格准备出示例 XML。

用眼睛确认数据结构

把列与值的对应关系以 XML 的嵌套形式来看,有时比原本的 CSV 更容易把握结构。

CSV 转 XML 的术语

标签名的限制
XML 的标签名必须以字母或下划线开头,不能包含空格和多数符号。**不符合这一限制的标题会自动替换为 `column1` 这样的名称。**
实体引用
把 `&` `<` `>` 改写为 `&` `<` `>` 的处理。**必须先转换 `&`,否则会变成二次转义。**
row 元素
表示一行数据的元素。本工具以在 `` 中排列 `` 的结构输出。
TSV
以制表符分隔的表格数据。从电子表格复制粘贴时通常就是这种格式。
表头行
写在第一行的列标题。它是标签名的来源,因此只用字母、数字和下划线书写,转换后也会更易读。

常见问题

许多基于 SOAP 的 Web 服务,以及许多长期运行的业务系统、核心系统,在 JSON 普及之前就已采用 XML 作为标准数据格式,至今仍以 XML 格式进行数据对接。因此,在与这类系统对接时,将 CSV 转换为 XML 的实际需求依然存在。

XML 标签名有命名规则,例如"不能以数字开头""不能包含特定符号"等。如果表头名称违反这些规则(例如以数字开头的列名,或包含空格、符号的列名),就无法被解析为合法的 XML。因此本工具会自动回退为安全的标签名,如 `column1`、`column2` 等。

它们都使用相同的 CSV 解析逻辑,区别仅在于输出格式。我们提供了一系列 CSV 转换工具(JSON、SQL、Markdown、HTML、XML),方便你根据对接系统或使用场景选择合适的输出格式。

本工具会自动将 &、<、> 等 XML 特殊字符转义为字符实体引用(&amp;、&lt;、&gt;)后再输出,因此即使单元格内容中包含这些字符,生成结果依然是可正确解析的合法 XML。
工具君

闲话 ― XML 为何被称为"冗长"

XML(可扩展标记语言)于 1998 年由 W3C 标准化,在 2000 年代初期的 Web 行业中,作为"系统间数据交换的标准格式"占据了压倒性的地位。从 SOAP、XML-RPC 等通信协议,到 RSS、Atom 的订阅推送,乃至 Maven 的 pom.xml 等配置文件,XML 几乎无处不在。

然而,由于 XML 需要为每个元素明确书写开始和结束标签,在表示相同数据时,往往比 2000 年代中期以后普及的 JSON 占用更多的数据量,因而被评价为"冗长(verbose)"。例如,JSON 中的 `{"name":"Alice"}` 对应的 XML 写作 <name>Alice</name>,标签本身的字符数常常比数据本身还要多。

尽管如此,XML 拥有 JSON 所不具备的成熟规范体系,例如通过 XML Schema 进行严格的类型与结构校验、通过命名空间避免冲突、通过 XSLT 进行转换处理等。如今,金融、医疗、政务等对可靠性要求极高的系统对接中依然选择 XML,这套完善的校验与转换生态正是原因之一。