XML 宣言付きでシリアル化する (LINQ to XML)
この記事では、C# または Visual Basic で XML をシリアル化するときに、XML 宣言を生成するかどうかを制御する方法について説明します。
File メソッドまたは TextWriter メソッドを使用して XElement.Save または XDocument.Save にシリアル化すると、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>
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET