XML 轉 CSV 轉換器

將 XML 記錄轉換為 CSV,並可控制嵌套欄位與屬性。

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 完全在您的瀏覽器中解析。 超過瀏覽器處理限制的檔案將作為選型的伺服器後備方案提供,未經您的同意不會上傳任何內容。