XContainer.CreateWriter Método

Definición

Crea un XmlWriter objeto que se puede usar para agregar nodos a .XContainer

public:
 System::Xml::XmlWriter ^ CreateWriter();
public System.Xml.XmlWriter CreateWriter();
member this.CreateWriter : unit -> System.Xml.XmlWriter
Public Function CreateWriter () As XmlWriter

Devoluciones

Que XmlWriter está listo para tener contenido escrito en él.

Ejemplos

Puede usar este método para realizar una transformación XSLT. Puede crear un árbol XML, crear un XmlReader a partir del árbol XML, crear un nuevo documento y crear un XmlWriter que escribirá en el nuevo documento. A continuación, puede invocar la transformación XSLT, pasando y XmlReaderXmlWriter a la transformación. Una vez completada correctamente la transformación, el nuevo árbol XML se rellena con los resultados de la transformación.

string xslMarkup = @"<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
    <xsl:template match='/Parent'>
        <Root>
            <C1><xsl:value-of select='Child1'/></C1>
            <C2><xsl:value-of select='Child2'/></C2>
        </Root>
    </xsl:template>
</xsl:stylesheet>";

XDocument xmlTree = new XDocument(
    new XElement("Parent",
        new XElement("Child1", "Child1 data"),
        new XElement("Child2", "Child2 data")
    )
);

XDocument newTree = new XDocument();
using (XmlWriter writer = newTree.CreateWriter()) {
    // Load the style sheet.
    XslCompiledTransform xslt = new XslCompiledTransform();
    xslt.Load(XmlReader.Create(new StringReader(xslMarkup)));

    // Execute the transform and output the results to a writer.
    xslt.Transform(xmlTree.CreateReader(), writer);
}

Console.WriteLine(newTree);
Dim xslMarkup As XDocument = _
    <?xml version='1.0'?>
    <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
        <xsl:template match='/Parent'>
            <Root>
                <C1><xsl:value-of select='Child1'/></C1>
                <C2><xsl:value-of select='Child2'/></C2>
            </Root>
        </xsl:template>
    </xsl:stylesheet>

Dim xmlTree As XElement = _
    <Parent>
        <Child1>Child1 data</Child1>
        <Child2>Child2 data</Child2>
    </Parent>

Dim newTree As XDocument = New XDocument()

Using writer As XmlWriter = newTree.CreateWriter()
    ' Load the style sheet.
    Dim xslt As XslCompiledTransform = _
        New XslCompiledTransform()
    xslt.Load(xslMarkup.CreateReader())

    ' Execute the transform and output the results to a writer.
    xslt.Transform(xmlTree.CreateReader(), writer)
End Using

Console.WriteLine(newTree)

Este ejemplo produce el siguiente resultado:

<Root>
  <C1>Child1 data</C1>
  <C2>Child2 data</C2>
</Root>

Comentarios

Al serializar, los prefijos de espacio de nombres se deducen de los atributos de espacio de nombres del árbol XML.

Para obtener más información, vea Trabajar con espacios de nombres XML.

Se aplica a

Consulte también