XML 转 CSV 转换器

将 XML 记录转换为 CSV,并可控制嵌套字段 and 属性。

Advanced settings
记录
CSV 输出

只需四步即可将 XML 转换为 CSV

  1. 添加 XML 数据。 粘贴文档或上传支持的 .xml 文件。
  2. 选择记录节点。 选择应该成为 CSV 行的重复元素。
  3. 选择字段规则。 扁平化嵌套的子元素,包含属性并设置 CSV 分隔符。
  4. 预览并导出。 在复制或下载 CSV 之前检查行和列。

选择重复的记录节点

在工具知道什么是单条记录之前,XML 到 CSV 的转换是不可靠的。因此,记录选择器是一个主要的控制项,而不是一个事后的高级设置。

考虑以下 XML:

<orders>
  <order id="1001">
    <customer>Ada</customer>
    <total>25.00</total>
  </order>
  <order id="1002">
    <customer>Lin</customer>
    <total>40.00</total>
  </order>
</orders>

重复路径 /orders/order 将转换为两行 CSV。

  • 扫描重复的同级元素
  • 建议可能的记录路径及其计数
  • 允许您选择不同的节点
  • 在转换前预览候选记录

扁平化嵌套的子元素

嵌套元素可以转换为基于路径的列。

<customer>
  <name>Ada</name>
  <address>
    <city>London</city>
  </address>
</customer>

建议的列:

customer.name
customer.address.city

选项面板包括扁平化嵌套元素、路径分隔符、最大深度、超出最大深度的行为以及如何保留嵌套片段。

包含 XML 属性

属性通常包含应该转换为列的 ID、类型或元数据。

<order id="1001" status="paid">

推荐的列:

@id
@status
  • 包含所有属性
  • 排除属性
  • 选择属性前缀
  • 保留或去除命名空间前缀

处理重复的子节点值

记录可能包含重复的子数组:

<order>
  <tag>priority</tag>
  <tag>international</tag>
</order>
  • 连接值,使用选定的分隔符。
  • 保留 XML 片段在单个加引号的单元格中。

命名空间

XML 命名空间前缀可以区分具有相同本地名称的元素。

默认情况下,前缀会从列名中去除。如果两个不同命名空间的元素产生相同的本地名称,则会显示冲突警告,并在受影响的列中保留前缀。

您可以选择在每个列名中保留前缀。预览始终在下载前显示最终的列名。

CSV 输出规则

在选择并扁平化 XML 记录之后,将应用常规的 CSV 输出控制:分隔符、包含标题、最小或全部字段引号、行尾、空值和缺失值行为以及 UTF-8 输出。

包含分隔符、双引号或换行符的值会被正确转义。

预览映射

在导出之前,预览将显示选定的记录路径、找到的记录数、生成的列、某些记录中缺失字段的警告、重复子节点警告、命名空间冲突和表格预览。

常见 XML 转 CSV 问题

转换器仅创建了一行

选择的是根元素而不是重复的记录节点。 选择每个记录中出现一次的子路径。

属性缺失

启用属性列。 预览显示所选前缀和任何名称冲突。

嵌套的值消失了

增加扁平化深度或保留嵌套片段。 当数据超出配置的深度时,工具会发出警告。

一个单元格中出现多个子节点值

记录包含重复的子列表。 选择连接或保留行为。

列名重复

命名空间前缀或属性标记可能已被移除。 使用使每个源路径保持唯一的命名策略。

XML 转 CSV 常见问题

转换器如何决定哪个 XML 元素成为行?

它建议重复的节点路径,并允许您选择一个。 对于包含多个重复组的文档,仅靠自动选择是不可靠的。

XML 属性可以成为 CSV 列吗?

可以。 启用属性并选择一个可见的前缀,例如 @

它支持嵌套的 XML 吗?

支持,在实现的扁平化深度和后备规则范围内。 深层或不规则的子树可以保持序列化 XML 文本的形式。

重复的子元素会发生什么?

它们可以根据所选选项进行连接或保留。 该工具绝不会在没有警告的情况下默默丢弃额外的值。

XML 命名空间会保留吗?

在需要防止名称冲突时会保留它们。 最终的列命名规则在预览中可见。

XML 会被上传吗?

不会 — 粘贴的 XML 完全在您的浏览器中解析。 超过浏览器处理限制的文件将作为可选的服务器后备方案提供,未经您的同意不会上传任何内容。