XML 格式化工具

格式化、驗證並美化 XML 文件,具備語法突顯與錯誤偵測功能

本機執行

XML 輸入

格式化輸出

檢查器

貼上格式正確(well-formed)的 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」,並指向第二次出現的位置。

無效的實體 / 未跳脫的 &

文字中的 & 或 < 必須跳脫為 &amp;、&lt;。剖析器會在確切的字元位置回報「EntityRef: expecting ;」或「not well-formed」。

格式化前 / 格式化後

左邊是壓縮過的 API 回應,右邊是以 2 個空格縮排格式化的同一份文件。結構、樹狀圖與路徑會依剖析後的文件更新。

Before
<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>
After
<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。
  • 五個預先定義的實體:&lt; &gt; &amp; &quot; &apos;——文字中直接出現 < 或 & 一律視為錯誤。
  • 元素與屬性名稱區分大小寫,並可帶有命名空間前置字元(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"?>)也會原封不動地留在文件開頭。

{-- * External Resources Component(#19 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / 官方语言文档 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}

相關工具