使用 XML 宣告序列化
這個主題描述如何控制序列化是否產生 XML 宣告。
XML 宣告產生
使用 XElement.Save 方法或 XDocument.Save 方法序列化為 File 或 TextWriter 會產生 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>