共用方式為


使用 XML 宣告序列化

這個主題描述如何控制序列化是否產生 XML 宣告。

XML 宣告產生

使用 XElement.Save 方法或 XDocument.Save 方法序列化為 FileTextWriter 會產生 XML 宣告。 當您序列化為 XmlWriter 時,寫入器設定 (在 XmlWriterSettings 物件中指定) 會決定是否產生 XML 宣告。

如果您要使用 ToString 方法序列化為字串,所產生的 XML 將不會包含 XML 宣告。

使用 XML 宣告序列化

下列範例會建立 XElement、將文件儲存為檔案,然後將檔案列印到主控台:

XElement root = new XElement("Root",
    new XElement("Child", "child content")
);
root.Save("Root.xml");
string str = File.ReadAllText("Root.xml");
Console.WriteLine(str);
Dim root As XElement = <Root>
                           <Child>child content</Child>
                       </Root>
root.Save("Root.xml")
Dim str As String = File.ReadAllText("Root.xml")
Console.WriteLine(str)

這個範例會產生下列輸出:

<?xml version="1.0" encoding="utf-8"?>
<Root>
  <Child>child content</Child>
</Root>

不使用 XML 宣告序列化

下列範例顯示如何將 XElement 儲存為 XmlWriter

StringBuilder sb = new StringBuilder();
XmlWriterSettings xws = new XmlWriterSettings();
xws.OmitXmlDeclaration = true;

using (XmlWriter xw = XmlWriter.Create(sb, xws)) {
    XElement root = new XElement("Root",
        new XElement("Child", "child content")
    );
    root.Save(xw);
}
Console.WriteLine(sb.ToString());
Dim sb As StringBuilder = New StringBuilder()
Dim xws As XmlWriterSettings = New XmlWriterSettings()
xws.OmitXmlDeclaration = True

Using xw As XmlWriter = XmlWriter.Create(sb, xws)
    Dim root = <Root>
                   <Child>child content</Child>
               </Root>
    root.Save(xw)
End Using
Console.WriteLine(sb.ToString())

這個範例產生下列輸出:

<Root><Child>child content</Child></Root>

請參閱

概念

序列化 XML 樹狀結構