CSV 轉 XML 轉換器

貼上 CSV/TSV 資料,即可轉換為將每一行作為一條記錄的 XML(格式為 值...)。

CSV 轉 XML 是什麼

需要把表格資料以 XML 形式處理的情境至今依然存在:老牌業務系統的匯入規格、報表引擎的輸入,以及部分 API。本工具只要貼上 CSV 或 TSV,就能把每一列轉換成一筆記錄的 XML。輸出採用 <rows><row><欄名>值</欄名>...</row></rows> 這樣直觀的結構,可以直接交給 XSLT 或解析器。

第一列會被讀作標題列,各欄的標題會用作標籤名稱。中文、日文以及帶重音符號的字母也可以用作 XML 標籤名稱,因此像 名稱、Größe 這樣的標題會直接成為標籤。不過,以數字開頭、為空、含有空白或符號、或以 xml 開頭的標題不符合 XML 的命名規則,會自動替換為 column1、column2 這樣的連續編號。 值中包含的 & < > 會跳脫為實體參照。所有處理都在瀏覽器中完成,因此像客戶資料這類不希望外傳的資料也可以放心處理。

把 CSV 轉換成 XML 的步驟

  1. 貼上 CSV 或 TSV 第一列作為標題,第二列以後作為資料讀取。也支援定位字元分隔。
  2. 確認標籤名稱 標題會直接成為標籤名稱。中文標題以及帶重音符號的字母也可以直接使用,但含有空白或符號的標題會被替換成編號,請留意這一點。
  3. 檢視產生的 XML 最頂層是 <rows>,每一列作為 <row> 排列其中。
  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 元素
表示一列資料的元素。本工具以在 <rows> 中排列 <row> 的結構輸出。
TSV
以定位字元分隔的表格資料。從試算表複製貼上時通常就是這種格式。
標題列
寫在第一列的欄位標題。它是標籤名稱的來源,因此只用字母、數字與底線書寫,轉換後也會更易讀。

常見問題

許多基於 SOAP 的 Web 服務,以及許多長期執行的業務系統、核心系統,在 JSON 普及之前就已採用 XML 作為標準資料格式,至今仍以 XML 格式進行資料對接。因此,在與這類系統對接時,將 CSV 轉換為 XML 的實際需求依然存在。

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,這套完善的校驗與轉換生態正是原因之一。