XContainer.CreateWriter Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee maakt u een XmlWriter die kan worden gebruikt om knooppunten toe te voegen aan de XContainer.
public:
System::Xml::XmlWriter ^ CreateWriter();
public System.Xml.XmlWriter CreateWriter();
member this.CreateWriter : unit -> System.Xml.XmlWriter
Public Function CreateWriter () As XmlWriter
Retouren
Een XmlWriter inhoud die er klaar voor is om er inhoud naar toe te schrijven.
Voorbeelden
U kunt deze methode gebruiken om een XSLT-transformatie uit te voeren. U kunt een XML-structuur maken, een XmlReader xml-structuur maken op basis van de XML-structuur, een nieuw document maken en een XmlWriter document maken dat naar het nieuwe document schrijft. Vervolgens kunt u de XSLT-transformatie aanroepen, waarbij de XmlReader en XmlWriter de transformatie worden doorgegeven. Nadat de transformatie is voltooid, wordt de nieuwe XML-structuur gevuld met de resultaten van de transformatie.
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)
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
<Root>
<C1>Child1 data</C1>
<C2>Child2 data</C2>
</Root>
Opmerkingen
Tijdens het serialiseren worden naamruimtevoorvoegsels afgeleid van de naamruimtekenmerken in de XML-structuur.
Zie Werken met XML-naamruimten voor meer informatie.