XContainer.CreateWriter Méthode

Définition

Crée un XmlWriter 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

XmlWriter

XmlWriter prêt à recevoir l'écriture de contenu.

Exemples

Vous pouvez utiliser cette méthode pour effectuer une transformation XSLT. Vous pouvez créer une arborescence XML, en créer une XmlReader à partir de l’arborescence XML, créer un document et en créer un XmlWriter qui écrit 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 avec succès, 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