XContainer.CreateWriter Yöntem

Tanım

öğesine düğüm XmlWritereklemek için kullanılabilecek bir XContainer oluşturur.

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

Döndürülenler

XmlWriter İçeriğin yazıldı olması için hazır olan bir.

Örnekler

XSLT dönüşümü gerçekleştirmek için bu yöntemi kullanabilirsiniz. BIR XML ağacı oluşturabilir, XML ağacından bir XmlReader oluşturabilir, yeni bir belge oluşturabilir ve yeni belgeye yazacak bir XmlWriter belge oluşturabilirsiniz. Ardından, ve'yi XmlReader dönüştürmeye geçirerek XSLT dönüşümünü XmlWriter çağırabilirsiniz. Dönüştürme başarıyla tamamlandıktan sonra, yeni XML ağacı dönüşümün sonuçlarıyla doldurulur.

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)

Bu örnek aşağıdaki çıkışı oluşturur:

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

Açıklamalar

Seri hale getirildiğinde, ad alanı ön ekleri XML ağacındaki ad alanı özniteliklerinden çıkarılır.

Daha fazla bilgi için bkz. XML Ad Alanları ile çalışma.

Şunlara uygulanır

Ayrıca bkz.