Serialisieren mit einer XML-Deklaration (LINQ to XML)
In diesem Artikel wird beschrieben, wie Sie steuern, ob beim Serialisieren von XML in C# oder Visual Basic eine XML-Deklaration generiert wird.
Beim Serialisieren in ein File- oder TextWriter-Objekt führt die Verwendung der XElement.Save- oder XDocument.Save-Methode zur Generierung einer XML-Deklaration. Beim Serialisieren in einen XmlWriter bestimmen die (in einem XmlWriterSettings-Objekt angegebenen) Writer-Einstellungen, ob eine XML-Deklaration generiert wird.
Bei der Serialisierung in eine Zeichenfolge mithilfe der ToString
-Methode enthält der resultierende XML-Code keine XML-Deklaration.
Beispiel: Serialisieren mit einer XML-Deklaration
Das folgende Beispiel erstellt ein XElement, speichert das Dokument in einer Datei und gibt die Datei dann auf der Konsole aus:
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)
Dieses Beispiel erzeugt die folgende Ausgabe:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Child>child content</Child>
</Root>
Beispiel: Serialisieren ohne eine XML-Deklaration
Das folgende Beispiel zeigt die Vorgehensweise beim Speichern eines XElement in einem 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())
Dieses Beispiel erzeugt die folgende Ausgabe:
<Root><Child>child content</Child></Root>