XML 格式化工具
格式化、驗證並美化 XML 文件,具備語法突顯與錯誤偵測功能
XML 輸入
格式化輸出
檢查器
進階選項
與另一份 XML 比較
將此文件傳送到 Data Diff,貼上第二個版本即可查看有哪些變更。
驗證並標示確切的錯誤位置
每次按鍵輸入時都會使用瀏覽器的 XML 剖析器執行驗證。格式正確的文件會即時顯示元素、屬性、文字節點與深度的計數;有問題的文件則會回報確切的行與欄、可能原因,並在出錯位置醒目提示——而不只是「not well-formed」(格式不正確)。
本工具可精準定位的常見 XML 錯誤
這些錯誤佔了無效 XML 的大多數情況。每一種都會偵測出位置與可能原因:
標籤不匹配
<person> 卻以 </perso> 關閉。剖析器會回報「Opening and ending tag mismatch」,並附上兩個標籤的行號;醒目提示會跳到出錯的那一個。
標籤未關閉
缺少 > 或缺少結束標籤。通常會在確切位置回報為「expected >」或「premature end of data in tag X」。
重複的屬性
同一個元素上出現兩次相同的屬性名稱,例如 <item id="1" id="2">。會回報為「Attribute redefined」,並指向第二次出現的位置。
無效的實體 / 未跳脫的 &
文字中的 & 或 < 必須跳脫為 &、<。剖析器會在確切的字元位置回報「EntityRef: expecting ;」或「not well-formed」。
格式化前 / 格式化後
左邊是壓縮過的 API 回應,右邊是以 2 個空格縮排格式化的同一份文件。結構、樹狀圖與路徑會依剖析後的文件更新。
<catalog><book id="1" category="fiction"><title>The Hobbit</title><author>J.R.R. Tolkien</author></book><book id="2" category="tech"><title>Refactoring</title><author>Martin Fowler</author></book></catalog>
<catalog>
<book id="1" category="fiction">
<title>The Hobbit</title>
<author>J.R.R. Tolkien</author>
</book>
<book id="2" category="tech">
<title>Refactoring</title>
<author>Martin Fowler</author>
</book>
</catalog>
XML 快速參考(W3C XML 1.0)
- 格式正確(well-formed)≠ 有效(valid):格式正確表示標籤正確巢狀並正確關閉;有效則進一步表示文件遵循 DTD 或 XSD schema。
- 五個預先定義的實體:< > & " '——文字中直接出現 < 或 & 一律視為錯誤。
- 元素與屬性名稱區分大小寫,並可帶有命名空間前置字元(ns:tag)。
- 根元素只能有一個;若有 XML 宣告(例如 <?xml version="1.0" encoding="UTF-8"?>),必須放在文件最開頭。
- 註解 <!-- … --> 不可包含 --,也不可巢狀。
這份資料的後續步驟
格式化只是第一步。不必離開瀏覽器即可繼續後續流程:
常見問題解答
關於 Xml Formatter 格式化的常見問題解答
此格式化工具會執行格式正確性(well-formedness)檢查與基本驗證,依據 W3C XML 1.0/1.1 規範檢查標籤巢狀是否正確、屬性語法,以及 XML 宣告是否符合規定。
可以,內建的 XPath 測試工具可讓您針對 XML 文件撰寫並求值 XPath 1.0 與 2.0 運算式,醒目提示符合的元素並即時顯示結果。
可以,此格式化工具能正確處理含命名空間的 XML 文件,在格式化元素與屬性的同時保留命名空間宣告與前置字元。
可以,轉換功能可讓您將 XML 轉換為 JSON 或反向轉換,透過智慧型對應保留元素結構、屬性與資料型別。
XML 格式化工具採用最佳化的解析演算法,支援最大 50MB 的檔案,適合處理大型設定檔、SOAP 訊息及資料交換文件。
命名空間宣告(xmlns、xmlns:prefix)在縮排時被視為一般屬性,且絕不會被重新排序或移除,因此命名空間 URI 會綁定在相同的前置詞上。格式化過程絕不會解析或改寫前置詞——下游工具會依 W3C Namespaces in XML 建議書來解析它們。
格式化僅會重新縮排並正規化元素之間的空白字元。驗證則檢查結構:標籤是否成對、是否只有一個根元素、屬性引號是否正確,以及實體語法是否符合 W3C XML 1.0 規範。格式化工具會回報格式正確性錯誤(格式錯誤的輸入無法重新縮排),但不會依據 DTD 或 XSD 結構描述進行驗證。
會。CDATA 區塊會完整保留其內部內容的原貌(這正是它的用途:跳脫原本需要實體編碼的文字),註解除了周圍縮排外也原封不動地保留。XML 宣告與處理指令(如 <?xml version="1.0"?>)也會原封不動地留在文件開頭。