Serializzare con una dichiarazione XML (LINQ to XML)
Questo articolo descrive come controllare se una dichiarazione XML viene generata o meno quando si serializza codice XML in C# o in Visual Basic.
La serializzazione di File o TextWriter tramite il metodo XElement.Save o il metodo XDocument.Save genera una dichiarazione XML. Quando si serializza in XmlWriter, le impostazioni del writer (specificate in un oggetto XmlWriterSettings) determinano se una dichiarazione XML viene generata o meno.
Se si serializza in una stringa tramite il metodo ToString
, il codice XML risultante non includerà una dichiarazione XML.
Esempio: Serializzare con una dichiarazione XML
Nell'esempio seguente viene creato un oggetto XElement, viene salvato il documento in un file e quindi stampato il file nella console.
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)
Nell'esempio viene prodotto l'output seguente:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Child>child content</Child>
</Root>
Esempio: Serializzare senza una dichiarazione XML
Nell'esempio seguente viene illustrato come salvare XElement in 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())
Nell'esempio viene prodotto l'output seguente:
<Root><Child>child content</Child></Root>