序列化時保留空白字元 (LINQ to XML)

本文章說明如何在序列化 XML 樹狀結構時控制空白字元。

常見的使用情境為讀取縮排的 XML,建立沒有任何空白字元文字節點 (也就是不保留空白字元) 的記憶體內 XML 樹狀結構,在 XML 上執行某些作業,然後再儲存包含縮排的 XML。 當您序列化具有格式的 XML 時,只會保留 XML 樹狀結構中的有效空白字元。 這是 LINQ to XML 的預設行為。

其他常見案例為讀取與修改已經過刻意縮排的 XML。 您可能不想用任何方式變更這個縮排。 在 LINQ to XML 中,如果於載入或剖析 XML 時保留空白字元,並在序列化 XML 時停用格式化,就可以達到這個效果。

XML 樹狀結構序列化方法的空白字元行為

下列 XElementXDocument 類別中的方法會序列化 XML 樹狀結構。 您可以將 XML 樹狀結構序列化至檔案、TextReaderXmlReaderToString 方法會序列化至字串。

如果此方法不將 SaveOptions 當做引數,該方法會格式化 (縮排) 序列化的 XML。 在此情況下,會宣告 XML 樹狀結構中的所有有效空白字元。

如果此方法採用 SaveOptions 當做引數,您就可以指定該方法不格式化 (縮排) 序列化的 XML。 在此情況下,會保留 XML 樹狀中的所有空白字元。