Compartir a través de


Serializar con una declaración XML

Actualización: November 2007

En este tema se describe cómo controlar si la serialización genera una declaración XML.

Generación de declaración XML

La serialización en File o TextWriter mediante el método XElement.Save o el método XDocument.Save genera una declaración XML. Cuando serializa en XmlWriter, la configuración del escritor (especificada en un objeto XmlWriterSettings) determina si se genera una declaración XML.

Si está serializando en una cadena mediante el método ToString, el XML resultante no incluirá una declaración XML.

Serializar con una declaración XML

En el ejemplo siguiente se crea un XElement, se guarda el documento en un archivo y, a continuación, se imprime el archivo en la consola:

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)

Este ejemplo genera el siguiente resultado:

<?xml version="1.0" encoding="utf-8"?>
<Root>
  <Child>child content</Child>
</Root>

Serializar sin una declaración XML

En el siguiente ejemplo se muestra cómo guardar un XElement en un 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())

Este ejemplo genera el siguiente resultado:

<Root><Child>child content</Child></Root>

Vea también

Conceptos

Serializar árboles XML