次の方法で共有


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 宣言なしでのシリアル化

XElementXmlWriter に保存する方法を次の例に示します。

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 ツリーのシリアル化