Microsoft Visual Studio 可以使用 編輯 > 進階 > 格式化文件來格式化 XML 文件,然後將重新格式化後的內容儲存回檔案。

本指南涵蓋完整的 Microsoft Visual Studio IDE,而非 Visual Studio Code,後者採用個別擴充功能的工作流程。對於專案中的檔案,請開啟方案,然後在方案總管中找出 XML 資源。對於獨立文件,請使用 檔案 > 開啟 > 檔案並選取 .xml 檔案。

Visual Studio 內建的 XML 編輯器是格式化您已經在 IDE 中編輯之文件的最快選項。當您需要特定的縮排寬度或精簡輸出,或原生格式化結果不便使用時,瀏覽器式格式化工具會很有用。XML 格式化工具在獨立的瀏覽器分頁中運作;它不會直接修改或儲存已開啟的 Visual Studio 檔案。

how to format xml in visual studio
如何在 Visual Studio 中格式化 XML:原生與瀏覽器方式

在 Visual Studio 中格式化 XML

當 XML 已經開啟,而您想改善其縮排與視覺巢狀結構時,請使用內建命令。

  1. 開啟 XML 文件。在方案總管中選取 .xml 檔案,或透過 檔案 > 開啟 > 檔案開啟它。請確保您使用的是 Visual Studio 的 XML 編輯器,而非純文字檢視。
  2. 將游標放在 XML 文件中。執行格式化命令前,先點選元素、屬性或文字區域,讓 Visual Studio 知道要處理哪一份文件。
  3. 執行格式化文件。選擇 編輯 > 進階 > 格式化文件。Visual Studio 的一般快捷鍵是 Ctrl+K, Ctrl+D;如果您的鍵盤對應不同,請使用選單命令。
  4. 解決編輯器回報的任何 XML 語法錯誤。如果文件格式不正確,請修正未關閉的元素、錯誤配對的結束標籤,或 Visual Studio 所指出的其他問題,然後再次執行格式化工具。
  5. 檢查格式化後的 XML。檢查巢狀結構、屬性、文字內容、註解、CDATA 區段與宣告。XML 空白可能具有意義,因此請檢查任何包含一般文字的元素,不要假設每個空格都只是用於版面配置。
  6. 儲存文件。確認結果符合您要保留的結構後,按下 Ctrl+S。

如果命令沒有產生有用的變更,請先確認檔案是以 XML 開啟,而且沒有殘留語法錯誤。然後檢查下方說明的 XML 特定格式化偏好設定。已經接近所設定樣式的文件,可能只會顯示極少的外觀差異。

設定 XML 格式化選項

Visual Studio 提供專屬設定,用於控制 XML 元素、屬性及其他內容的格式化方式。這些選項與一般程式碼樣式設定分開,適合在團隊希望不同專案中的 XML 檔案都遵循相同版面配置時使用。

  1. 開啟 工具 > 選項。
  2. 展開 文字編輯器 > XML > 格式化。
  3. 檢視可用於 XML 版面配置的控制項,並選取符合您專案慣例的設定。
  4. 選取 套用或 確定,再次將游標放在 XML 文件中,然後執行 格式化文件以測試設定。

這些偏好設定控制的是呈現方式,而非結構描述法是否符合要求。它們可以讓 XML 編輯器的結果更可預測,但無法修復無效標記,也不能證明文件符合 XSD、DTD、資料型別或命名空間需求。當這些規則對專案很重要時,請另外保留驗證步驟。

將瀏覽器格式化工具作為獨立工作流程使用

當您想明確控制兩個空格、四個空格或定位點縮排,或需要在透過網路傳送前或嵌入其他檔案前,將 XML 放在單行中時,請使用瀏覽器式 XML 格式化工具。由於這是獨立的應用程式介面,因此工作流程包含將來源內容複製到工具中,再將結果複製回 Visual Studio。

  1. 從 Visual Studio 複製 XML。選取您要處理的文件文字並複製。對於大型檔案,請先在副本上作業,不要立即取代原檔。
  2. 將 XML 貼到格式化工具中或自行輸入。開啟 XML 格式化工具,將 XML 放入輸入方塊。
  3. 選擇縮排樣式。依各個巢狀層級所需的版面配置,選擇兩個空格、四個空格或定位點。
  4. 執行適當的操作。選取 格式化以美化列印階層結構,或選取 壓縮以移除版面空白並產生單一精簡行。
  5. 讀取任何錯誤並修正來源內容。如果 XML 格式不正確,請依回報訊息在 Visual Studio 中找出問題,修正後再次執行操作。
  6. 複製前先檢查結果。確認結構與內容適合您的用途,尤其是註解、CDATA、宣告及含有文字的元素周圍。
  7. 複製並貼回輸出內容。在格式化工具中選取複製,以結果取代 Visual Studio 中選取的 XML,然後儲存文件。

所有 XML 處理都會在瀏覽器本機進行。XML 不會上傳、傳送到伺服器、記錄或儲存,而且格式化工具可繼續離線運作。您不需要設定帳戶或安裝程式,不過可處理的 XML 數量仍取決於您自己裝置的資源。

瀏覽器格式化工具會保留的 XML 內容

  • 註解會保留在原處,並與周圍文件一起縮排。
  • CDATA 區段會原封不動地通過,包括區段內的保留字元及看似標記的文字。
  • 自我關閉元素會完全依照原樣保留,不會展開成不同的標籤形式。
  • XML 宣告與處理指令會保留在頂端的獨立行,而DOCTYPE 宣告則逐字保留。
  • 包含大於號字元的屬性值會正確解析,不會造成標籤提早結束。

有兩個重要的空白界限。對於混合內容,也就是一般文字與行內子元素混合的情況,完整內容會完全依照原樣留在同一行,因此有意義的內部空白不會被改寫。不過,當元素只包含純文字時,格式化功能可能會標準化其前置與後置空白,而且此工具不會特別處理 xml:space="preserve"。取代原檔前,請檢查這些情況。

壓縮的目的較為有限:它會移除標籤之間不具意義的空白與換行,產生單一精簡行,同時保留元素內有意義的文字。因此,它適合用於傳輸或嵌入,但在取代來源文件前,仍應檢查結果。

比較原生與瀏覽器工作流程

工作流程 輸出 最適合情況 重要界限
Visual Studio 格式化文件 依 XML 編輯器設定產生易讀的巢狀結構與縮排 已在 Visual Studio 專案中開啟的 XML 檔案 格式不正確的 XML 仍需修正;這不是單行壓縮工具
瀏覽器格式化 採用兩個空格、四個空格或定位點縮排的美化 XML 特定縮排樣式,或在 IDE 之外使用的替代方案 只含純文字的元素,其前置或後置空白可能會被標準化
瀏覽器壓縮 移除版面空白後的單一精簡行 精簡資料與嵌入的 XML 有意義的文字會保持完整,但 xml:space="preserve" 不會受到特別處理
瀏覽器錯誤檢查 友善的結構錯誤訊息,通常會附上行與欄 找出常見的 XML 格式錯誤 這不是完整的 XSD 或 DTD 驗證

進行格式化或壓縮時,瀏覽器工具會解析 XML,並標示未關閉的標籤、錯誤配對或多餘的結束標籤,以及未終止的註解、CDATA 區段或處理指令等問題。它不會依 XSD 檢查文件、驗證資料型別,也不會強制套用命名空間規則。請將結果視為格式正確性回饋,而不是 XML 符合業務或結構描述法標準的證明。

儲存前先檢查輸出內容

比較格式化版本與來源內容時,請讓原始檔案保持可用。提交結果前,請確認 XML 宣告與 DOCTYPE 均存在、自我關閉元素仍保留原始形式,且註解與 CDATA 位於您預期的位置。請特別留意混合文字、行內 SVG 或 XHTML 內容,以及任何使用 xml:space="preserve" 的元素。

對於內容龐大的文件,請將原始文字與格式化後的文字貼到差異檢查工具中,逐行檢視變更。這樣在覆寫 Visual Studio 檔案前,更容易察覺不預期的空白或內容變更。請使用瀏覽器格式化工具作為受控的替代方案或格式化選項,然後返回 IDE、儲存,並在實際專案環境中驗證文件。