XContainer.CreateWriter Méthode

Définition

Crée un XmlWriter élément qui peut être utilisé pour ajouter des nœuds au XContainer.

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

Retours

Un XmlWriter contenu prêt à être écrit.

Exemples

Vous pouvez utiliser cette méthode pour effectuer une transformation XSLT. Vous pouvez créer une arborescence XML, créer une XmlReader arborescence XML à partir de l’arborescence XML, créer un document et créer un XmlWriter document qui écrirea dans le nouveau document. Ensuite, vous pouvez appeler la transformation XSLT, passer la XmlReader transformation et XmlWriter la transformer. Une fois la transformation terminée, la nouvelle arborescence XML est remplie avec les résultats de la transformation.

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)

Cet exemple produit la sortie suivante :

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

Remarques

Lors de la sérialisation, les préfixes d’espace de noms sont déduits des attributs d’espace de noms dans l’arborescence XML.

Pour plus d’informations, consultez Utiliser des espaces de noms XML.

S’applique à

Voir aussi