XML 轉 CSV 轉換工具
將重複的 XML 記錄元素轉換為 RFC 樣式 CSV,包含屬性、重複的子元素、精確的標籤選擇,並支援可選的公式保護。
隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。
使用方式
- 1.貼上正確格式的 XML,並輸入重複記錄元素共用的精確限定名稱。
- 2.對需要人工開啟的電子表格維持公式保護,然後進行轉換並驗證記錄與欄位數量。
- 3.複製或下載 CSV,檢查重複子元素的 JSON 欄位與型別敏感值,並與原始資料對比。
關於XML 轉 CSV 轉換工具
XML 到 CSV 轉換器會將重複的 XML 記錄元素轉換為矩形的逗號分隔表格。貼上一個 XML 文件,輸入重複記錄元素的準確限定名稱,選擇是否保護類似電子表格公式值,轉換後複製或下載 CSV。解析與轉換在瀏覽器端進行,文件不會上傳。
瀏覽器使用 DOMParser,並以 application/xml 解析輸入內容。標籤、引號或實體格式錯誤時會傳回錯誤文件並阻止轉換。系統會在解析前拒絕 DOCTYPE 宣告,因此此工具不會處理外部實體、DTD 預設值或自訂實體定義。記錄名稱必須是完全相符的 XML 限定名稱,例如 item 或 ns:item,並使用 getElementsByTagName 區分大小寫進行比對。
每個匹配元素都變成一行. 記錄中的屬性成為以 @ 序列前列,例如 @id. 直接子元素成為使用其準確合格名稱的列. 直接文字在子元素之外成為 #文字列,而不是隻有白色空間. 列序是決定性的:第一份記錄中的欄位首先出現,以後的記錄中以前未見過的欄位新增.。
直接子元素會貢獻其修剪後的文字內容。巢狀的標籤會展平為後代文字,因此元素邊界、子屬性、註解、處理指令、僅為結構宣告的字首,以及混合內容的順序皆不會被保留。當同一直接子元素名稱在一個記錄中出現多次時,其文字值會儲存在一個 CSV 給定的單一欄位中,以緊湊的 JSON 陣列形式儲存,而非僅保留第一個或最後一個值。
輸出的 CSV 遵循常見的 RFC 4180 模式:欄位以逗號分隔,記錄使用 CRLF,包含逗號、引號、製表符、歸位字元或換行的欄位會被雙引號包圍,巢狀引號會被重複。空白字元會被保留。缺失的欄位會變成空欄。第一個記錄會作為標題欄位,由確定的欄位合併而成。
電子表格軟體可能將以 =、+、- 或 @ 開頭的欄位視為公式。預設啟用保護功能,並在引號內以「Tab」字首這些值,遵循 OWASP 所討論的電子表格導向的緩解措施。此操作會有意改變欄位資料,並非所有電子表格或程式化匯入工具皆能安全處理。僅在需要精確原始值且目的地將所有欄位視為無活性文字時才應關閉此功能。
XML 沒有通用的紀錄到表格對應方式。這個工具適用於可預測的內容來源,例如包含重複項目元素且擁有純量子文字的目錄。它不會自動推斷紀錄、將巢狀陣列擴充套件為多行、合併父值、評估 XPath、規範名稱空間、保留結構型別、根據 XSD 驗證,或在不遺失的情況下轉換任意混和內容檔案。對於這些合約,應使用明確的轉換方式,例如 XSLT 或應用程式碼。
下載的檔案使用 UTF-8 text/csv 格式,不會附加位元組序標。部分舊式電子表格設定可能需要匯入向導或明確的 UTF-8 選取。日期、數值、前導零、識別碼以及布林值將維持來自 XML 的文字形式;開啟檔案時電子表格仍可能自動推測型別。若需保留前導零或精確度,應在匯入時設定受控的欄位型別。
限制為 500,000 XML 字元、10,000 匹配的記錄、200 欄位,以及 5,000,000 CSV 字元。轉換工具在無法處理時會失敗,不會截斷。八個外部測試案例涵蓋純文字、逗號、引號、換行、空白、Unicode,以及兩種公式開頭情境。其他測試涵蓋屬性、重複子元素、缺失欄位、錯誤名稱、DOCTYPE 拒絕、以及無匹配錯誤。轉換前請比較行與欄位數量與原始資料。
方法與來源
使用瀏覽器 DOM 解析 XML,拒絕 DOCTYPE 與解析錯誤檔案,選擇精確的限定記錄名稱,將記錄屬性與直接子元素文字展平為確定的欄位合併,保留重複專案為緊湊的 JSON 陣列,並以 RFC 樣式 CRLF CSV 串列化,支援可選的公式欄位保護。
常見問題
- 為何屬性欄位會以 @ 開頭?
- 此字首可將記錄屬性與可能使用相同名稱的子元素區分開。
- 巢狀的 XML 元素會如何處理?
- 其後代文字會展平至直接子元素欄位。結構與子屬性不會被保留,因此此轉換是故意的損失性操作。
- 為何某些電子表格欄位會以 Tab 開頭?
- 當保護功能啟用時,以公式字元開頭的值會在引號內以 Tab 字首,以減少意外執行電子表格公式。僅在評估目的地後,且需要精確的原始值時才應關閉此功能。
相關工具
- XML 轉 JSON 轉換工具將結構完整、格式正確的 XML 轉換為可讀的 JSON,並保留屬性、文字內容、名稱空間以及重複元素。
- CSV 到 HTML 表格轉換工具將 RFC 4180 風格的 CSV 轉換為轉義後的結構化表格標記,並提供安全的 React 預覽與精確的剪貼簿輸出。
- CSV 到 JSON解析一個受限的 RFC 4180 格式逗號分隔檔案,並在本機執行,輸出保留引號、逗號、引號和行結束符的 JSON,不損失任何內容。
- XPath 測試工具使用 XPath 1.0 對離線的 XML 進行評估,並檢查節點、字串、數值或布林結果,不插入匹配的標記內容。
- ANSI 色彩碼產生器建立並複製原始 SGR 逸出序列,並搜尋標準 8 色加亮 8 色的終端機色碼。
- ASCII 表格查詢所有標準 7 位 ASCII 編碼的精確十進位、十六進位、八進位與二進位值。
開發者工具 使用指南
查看全部- Convert .properties Files to JSON Online (英文原文)
- Random MAC Address On or Off: A Developer Guide (英文原文)
- Generate a JWT for Testing: HS256 Tokens in Your Browser (英文原文)
- How to Decode JWT Tokens in Angular Apps (英文原文)
- JSON Schema to Zod: Inference Limits and a Safer Path (英文原文)
- Rust: Convert a Struct to a JSON String With serde (英文原文)
- How to Convert JSON to Excel in Python (英文原文)
- JSON to CSV Alternative With Built-In Formula Protection (英文原文)
- Format a JSON File in VS Code and in Your Browser (英文原文)
- Local JavaScript Playground Alternative for Safe Testing (英文原文)
- How to Convert IPv4 to a 32-Bit Integer for Storage (英文原文)
- Convert Decimal Numbers to IEEE 754 Floating Point Format (英文原文)
- HTTP Status Codes Alternative: A Registry-First Lookup (英文原文)
- How to Edit HTML in a Browser Using a Sandboxed Preview (英文原文)
- Format HTML Code from Notepad++ Without Plugins (英文原文)
- Why Is Hello World Used in Programming: A Practical Guide (英文原文)
- How to Make Flexbox Items Fill the Container Height (英文原文)
- File Signatures List Alternative: Twelve Verified Prefixes (英文原文)
- How to Open Excel Files Online in a Browser Preview (英文原文)
- How to Convert Excel to JSON File for ITR Filing (英文原文)