XContainer.CreateWriter Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt einen XmlWriter, der zum Hinzufügen von Knoten zu dem XContainer verwendet werden kann.
public:
System::Xml::XmlWriter ^ CreateWriter();
public System.Xml.XmlWriter CreateWriter ();
member this.CreateWriter : unit -> System.Xml.XmlWriter
Public Function CreateWriter () As XmlWriter
Gibt zurück
Ein XmlWriter, in den Inhalt geschrieben werden kann.
Beispiele
Sie können diese Methode verwenden, um eine XSLT-Transformation auszuführen. Sie können eine XML-Struktur erstellen, eine XmlReader aus der XML-Struktur erstellen, ein neues Dokument erstellen und ein XmlWriter neues Dokument erstellen, das in das neue Dokument geschrieben wird. Anschließend können Sie die XSLT-Transformation aufrufen, die XmlReader transformation übergeben und XmlWriter an die Transformation übergeben. Nach erfolgreichem Abschluss der Transformation wird die neue XML-Struktur mit den Ergebnissen der Transformation aufgefüllt.
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)
Dieses Beispiel erzeugt die folgende Ausgabe:
<Root>
<C1>Child1 data</C1>
<C2>Child2 data</C2>
</Root>
Hinweise
Während der Serialisierung werden Namespacepräfixe aus den Namespaceattributen in der XML-Struktur abgeleitet.
Weitere Informationen finden Sie unter "Arbeiten mit XML-Namespaces".