只需四步即可将 XML 转换为 CSV
- 添加 XML 数据。 粘贴文档或上传支持的
.xml文件。 - 选择记录节点。 选择应该成为 CSV 行的重复元素。
- 选择字段规则。 扁平化嵌套的子元素,包含属性并设置 CSV 分隔符。
- 预览并导出。 在复制或下载 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 完全在您的浏览器中解析。 超过浏览器处理限制的文件将作为可选的服务器后备方案提供,未经您的同意不会上传任何内容。