Microsoft Visual Studio 可以使用 編輯 > 進階 > 格式化文件來格式化 XML 文件,然後將重新格式化後的內容儲存回檔案。
本指南涵蓋完整的 Microsoft Visual Studio IDE,而非 Visual Studio Code,後者採用個別擴充功能的工作流程。對於專案中的檔案,請開啟方案,然後在方案總管中找出 XML 資源。對於獨立文件,請使用 檔案 > 開啟 > 檔案並選取 .xml 檔案。
Visual Studio 內建的 XML 編輯器是格式化您已經在 IDE 中編輯之文件的最快選項。當您需要特定的縮排寬度或精簡輸出,或原生格式化結果不便使用時,瀏覽器式格式化工具會很有用。XML 格式化工具在獨立的瀏覽器分頁中運作;它不會直接修改或儲存已開啟的 Visual Studio 檔案。

在 Visual Studio 中格式化 XML
當 XML 已經開啟,而您想改善其縮排與視覺巢狀結構時,請使用內建命令。
- 開啟 XML 文件。在方案總管中選取 .xml 檔案,或透過 檔案 > 開啟 > 檔案開啟它。請確保您使用的是 Visual Studio 的 XML 編輯器,而非純文字檢視。
- 將游標放在 XML 文件中。執行格式化命令前,先點選元素、屬性或文字區域,讓 Visual Studio 知道要處理哪一份文件。
- 執行格式化文件。選擇 編輯 > 進階 > 格式化文件。Visual Studio 的一般快捷鍵是 Ctrl+K, Ctrl+D;如果您的鍵盤對應不同,請使用選單命令。
- 解決編輯器回報的任何 XML 語法錯誤。如果文件格式不正確,請修正未關閉的元素、錯誤配對的結束標籤,或 Visual Studio 所指出的其他問題,然後再次執行格式化工具。
- 檢查格式化後的 XML。檢查巢狀結構、屬性、文字內容、註解、CDATA 區段與宣告。XML 空白可能具有意義,因此請檢查任何包含一般文字的元素,不要假設每個空格都只是用於版面配置。
- 儲存文件。確認結果符合您要保留的結構後,按下 Ctrl+S。
如果命令沒有產生有用的變更,請先確認檔案是以 XML 開啟,而且沒有殘留語法錯誤。然後檢查下方說明的 XML 特定格式化偏好設定。已經接近所設定樣式的文件,可能只會顯示極少的外觀差異。
設定 XML 格式化選項
Visual Studio 提供專屬設定,用於控制 XML 元素、屬性及其他內容的格式化方式。這些選項與一般程式碼樣式設定分開,適合在團隊希望不同專案中的 XML 檔案都遵循相同版面配置時使用。
- 開啟 工具 > 選項。
- 展開 文字編輯器 > XML > 格式化。
- 檢視可用於 XML 版面配置的控制項,並選取符合您專案慣例的設定。
- 選取 套用或 確定,再次將游標放在 XML 文件中,然後執行 格式化文件以測試設定。
這些偏好設定控制的是呈現方式,而非結構描述法是否符合要求。它們可以讓 XML 編輯器的結果更可預測,但無法修復無效標記,也不能證明文件符合 XSD、DTD、資料型別或命名空間需求。當這些規則對專案很重要時,請另外保留驗證步驟。
將瀏覽器格式化工具作為獨立工作流程使用
當您想明確控制兩個空格、四個空格或定位點縮排,或需要在透過網路傳送前或嵌入其他檔案前,將 XML 放在單行中時,請使用瀏覽器式 XML 格式化工具。由於這是獨立的應用程式介面,因此工作流程包含將來源內容複製到工具中,再將結果複製回 Visual Studio。
- 從 Visual Studio 複製 XML。選取您要處理的文件文字並複製。對於大型檔案,請先在副本上作業,不要立即取代原檔。
- 將 XML 貼到格式化工具中或自行輸入。開啟 XML 格式化工具,將 XML 放入輸入方塊。
- 選擇縮排樣式。依各個巢狀層級所需的版面配置,選擇兩個空格、四個空格或定位點。
- 執行適當的操作。選取 格式化以美化列印階層結構,或選取 壓縮以移除版面空白並產生單一精簡行。
- 讀取任何錯誤並修正來源內容。如果 XML 格式不正確,請依回報訊息在 Visual Studio 中找出問題,修正後再次執行操作。
- 複製前先檢查結果。確認結構與內容適合您的用途,尤其是註解、CDATA、宣告及含有文字的元素周圍。
- 複製並貼回輸出內容。在格式化工具中選取複製,以結果取代 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、儲存,並在實際專案環境中驗證文件。