跳到正文

XML 转 CSV 在线转换

把 XML 文件中重复的记录展开为 CSV 行,属性和嵌套元素都会变成列;文件在你的设备上转换,不会上传。

转换为
把 XML 文件拖到这里XML 最大 100 MB · JSON、CSV、XLSX、XLS、ODS 最大 500 MB
选择文件在你的设备上处理,不会上传
在浏览器中运行 · 无需上传工作原理

XML 转 CSV 使用方法

  1. 1

    拖入 XML 文件

    导出文件、数据源或商品目录都可以,只要同一个元素按每条记录重复出现即可。

  2. 2

    选择行元素

    第一个重复元素会自动选中;如果想让每个订单行占一行,而不是每个订单占一行,可以从列表中选择更深一层的元素。

  3. 3

    调整列

    保留或去掉属性,把重复的子元素合并到一个单元格或为其编号,并选择逗号、分号或制表符作为分隔符。

  4. 4

    下载 CSV

    查看表格预览后,下载 .csv 文件或直接复制;如果要用 Excel 打开,请添加 UTF-8 BOM。

限制与 Pro

XML 文件最大 100 MB,记录数量不限。

关于 XML 转 CSV

XML 转 CSV 会把树状结构展开成表格。你指定哪个元素代表一条记录,比如商品、订单、条目或员工,它的每一次出现都会按文档顺序变成一行,无论它位于文件的哪个位置。候选列表会显示每个重复元素及其数量,所以 catalog › product(240)和 catalog › product › variant(1,130)一眼就能分清。

列来自每条记录包含的内容。属性会以自己的名称成为列(id、status);子元素同样成为列,更深的层级则使用带点的名称,例如 customer.address.city。子元素的属性会写成 price.currency,排在 price 本身旁边。列按首次出现的顺序排列,缺少某一项的记录会让对应单元格留空。

当一条记录重复某个子元素时,比如一个 <book> 里有三个 <author>,你可以选择把这些值用分号连接放进一个单元格(“Ann; Bob; Cy”),或者使用编号列 author.1、author.2、author.3。每一行的编号方式相同,因此各列能够对齐。

CSV 遵循 RFC 4180:包含分隔符、引号或换行的字段会加引号,行以 CRLF 结尾。如果电子表格软件使用小数逗号,可以选择分号;再添加 UTF-8 BOM,Windows 上的 Excel 就能正确显示西里尔字母和带重音的字母。值会按 XML 中的原样写成文本;需要按类型写入时,请使用 XML 转 Excel 页面。

隐私

XML 文件由此浏览器标签页内的 worker 解析并展开,XML 和 CSV 都不会上传或存储。

XML 转 CSV:常见问题

如何选择哪个元素作为一行?
使用“每个元素一行”。它会列出同一父元素下出现多次的所有元素,附带路径和数量,层级浅的排在前面。第一项默认选中,适合大多数导出文件;如果想让每个订单行占一行而不是每个订单占一行,就选择更深的路径。
嵌套元素会怎么处理?
它们会成为列,列名沿用从记录元素开始的路径:<customer><city>Tashkent</city></customer> 会变成 customer.city 列。任意层级的属性也会成为列;如果属性与子元素同名,属性列名前会加 @,两者的值就不会互相覆盖。
记录内重复的标签如何处理?
默认情况下,它们的值放在同一个单元格里,用分号加空格分隔。选择“编号列”可以把它们分到 tag.1、tag.2 等列;只要某个标签在任一记录中重复,所有记录都会编号,列因此保持对齐。编号列适合电子表格,合并单元格适合阅读或导入文本字段。
为什么用 Excel 打开 CSV 会出现乱码?
对于不以字节顺序标记开头的 CSV 文件,Windows 上的 Excel 会按旧代码页读取。下载前打开“添加 UTF-8 BOM”,oʻ、ё、é 等字母就能正常显示。如果你的 Excel 使用小数逗号,还要把“分隔符”选为分号,列才能正确拆分。
可以转换包含多种记录的 XML 吗?
每次转换只会把一种元素变成行。如果文件同时包含客户和订单,先选择 customer 转换一次,再选择 order 转换一次;文件保持已加载状态,只需几秒钟。所选记录之外的元素,例如文档头部的值,不会重复写入各行。

此工具的其他用途