XML 格式化工具

依正確的巢狀層級縮排 XML,屬性也維持好讀。貼上文件、格式化,再複製或下載,完全不上傳。

XML 輸入

貼上 XML

格式化後的 XML

結果

XML 格式化工具在做什麼?

XML 格式化工具會重新縮排一份 XML 文件,讓元素的層級一眼就看得出來:每個巢狀標籤各佔一行、縮排一致,屬性留在所屬元素上,輸出的仍然是同一份文件。

XML 至今仍是很多基礎設施的格式:Maven 的 pom.xml 與 Android 版面、.NET 與 Java 設定檔、SOAP 回應、RSS 與 Atom feed、SVG。這些檔案常常是建置流程或 API 產生的一整行壓縮內容,難以閱讀、審閱或貼進工單,格式化就是把那一行還原成樹狀結構。如果目的是把資料送進前端,請先用 [XML 轉 JSON](/xml-to-json) 工具。

常見的 XML 編輯情境大同小異:接手別人產生的設定檔、找出哪個元素少了結束標籤、上線前審閱差異,或把 SOAP 回應貼進問題回報。這一頁刻意不做驗證——當你需要確認文件格式良好、而不只是可讀,請改用 [XML 驗證工具](/xml-validator)。

如何格式化 XML

  1. 把 XML 貼到輸入框,或把 .xml 檔拖進來。
  2. 選擇縮排寬度:兩個空格是常見慣例,巢狀較深的設定檔用四個空格更好讀。
  3. 按「格式化 XML」。
  4. 查看結果 —— 巢狀結構變成一行一個元素,屬性留在所屬元素上。
  5. 檢查必須原樣保留的內容:註釋會被移除、CDATA 會改成轉義文字,數字文字(例如 42.50、007)會正規化成 42.5、7。
  6. 複製輸出,或下載成 .xml 檔。

XML 格式化範例

壓縮的 SOAP 回應

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><GetPriceResponse><Price currency="EUR">42.50</Price></GetPriceResponse></soap:Body></soap:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetPriceResponse>
      <Price currency="EUR">42.5</Price>
    </GetPriceResponse>
  </soap:Body>
</soap:Envelope>

Maven pom.xml 片段

<project><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>demo</artifactId></project>
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>demo</artifactId>
</project>

含 CDATA 的 RSS 項目

<item><title>Release 2.0</title><description><![CDATA[修正 <b>巢狀</b> 問題]]></description></item>
<item>
  <title>Release 2.0</title>
  <description>修正 &lt;b&gt;巢狀&lt;/b&gt; 問題</description>
</item>

屬性留在原位

<user id="7" role="admin"><name>Ada</name><active>true</active></user>
<user id="7" role="admin">
  <name>Ada</name>
  <active>true</active>
</user>

XML 格式化:UrsaKit 與其他選擇

比較項目UrsaKit自己實作一般網上工具
準備工作打開網頁安裝並執行 CLI打開網頁
屬性留在所屬元素保留有時會重新排序
資料是否離開裝置否,在瀏覽器內完成否通常會傳到伺服器
縮排2 或 4 個空格可設定通常固定
註釋與 CDATA註釋移除、CDATA 轉義原樣保留常被整段去除
需要註冊否否有時需要
大型檔案數 MB 很順暢取決於你的機器常有上限
常見問題

常見問題

格式化會保留我的資料嗎?

大致上會。元素名稱、屬性順序與文字內容都保持不變,但解析器會正規化重新輸出的內容:註釋會被移除、CDATA 會寫成轉義文字,數字文字例如 42.50、007、1e3 會變成 42.5、7、1000。若文件必須逐字元還原(有前導零的 ID、郵遞區號、註釋),請保留原始檔,把格式化結果當成閱讀輔助。

CDATA 與註釋會怎樣?

註釋會從輸出中移除;CDATA 區段會改寫成一般的轉義文字,例如 <![CDATA[修正 <b>巢狀</b> 問題]]> 會變成 修正 &lt;b&gt;巢狀&lt;/b&gt; 問題。若註釋或 CDATA 必須原樣保留,請留著原始檔。

為什麼格式化會失敗?

只有當內容完全無法解析時才會失敗,例如出現落單的 < 字元。缺少結束標籤或屬性沒加引號通常會被接受並悄悄修補,所以這一頁不是驗證工具——需要確認格式良好時,請改用 XML 驗證工具。

我的 XML 會被上傳嗎?

不會。解析與格式化都在瀏覽器內本機完成。

可以處理大型檔案嗎?

數 MB 的檔案都很順暢;極大的文件則取決於裝置記憶體。

該選哪種縮排?

兩個空格是常見慣例,巢狀很深的設定檔常用四個空格;整份文件一致就好。若項目統一使用 Tab,請改用編輯器格式化。

在 VS Code、IntelliJ 或 Notepad++ 裡怎麼格式化 XML?

VS Code 開啟檔案後按 Shift+Alt+F(Windows / Linux)或 Shift+Option+F(macOS)。IntelliJ IDEA 等 JetBrains IDE 選取檔案後用 Code → Reformat Code(Ctrl+Alt+L,macOS 為 Cmd+Option+L)。Eclipse 是 Ctrl+Shift+F;Notepad++ 需要安裝 XML Tools 插件,會多出 Pretty Print 選單。

全部工具