XContainer.CreateWriter Metoda

Definicja

Tworzy, który może służyć do dodawania węzłów XContainerdo. XmlWriterCreates an XmlWriter that can be used to add nodes to the XContainer.

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

Zwraca

Jest XmlWriter to element, który jest gotowy do zapisania zawartości.An XmlWriter that is ready to have content written to it.

Przykłady

Za pomocą tej metody można przeprowadzić transformację XSLT.You can use this method to perform an XSLT transformation. Można utworzyć drzewo XML, utworzyć obiekt XmlReader z drzewa XML, utworzyć nowy dokument i XmlWriter utworzyć, który będzie zapisywać w nowym dokumencie.You can create an XML tree, create an XmlReader from the XML tree, create a new document, and create a XmlWriter that will write into the new document. Następnie można wywołać transformację XSLT, przekazując XmlReader i XmlWriter do przekształcenia.Then, you can invoke the XSLT transformation, passing the XmlReader and XmlWriter to the transform. Po pomyślnym zakończeniu przekształcenia nowe drzewo XML zostanie wypełnione wynikami transformacji.After the transformation successfully completes, the new XML tree is populated with the results of the 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)  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Uwagi

Podczas serializowania prefiksy przestrzeni nazw są wywnioskowane z atrybutów przestrzeni nazw w drzewie XML.While serializing, namespace prefixes are inferred from the namespace attributes in the XML tree.

Aby uzyskać więcej informacji, zobacz Praca z przestrzeniami nazw XML.For more information, see Working with XML Namespaces.

Dotyczy

Zobacz też