.NET Framework Class Library
XContainer..::.CreateWriter Method

Creates an XmlWriter that can be used to add nodes to the XContainer.

Namespace:  System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)
Syntax

Visual Basic (Declaration)
Public Function CreateWriter As XmlWriter
Visual Basic (Usage)
Dim instance As XContainer
Dim returnValue As XmlWriter

returnValue = instance.CreateWriter()
C#
public XmlWriter CreateWriter()
Visual C++
public:
XmlWriter^ CreateWriter()
JScript
public function CreateWriter() : XmlWriter

Return Value

Type: System.Xml..::.XmlWriter
An XmlWriter that is ready to have content written to it.
Remarks

While serializing, namespace prefixes are inferred from the namespace attributes in the XML tree.

For more information, see Working with XML Namespaces.

Examples

You can use this method to perform an XSLT transformation. 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. Then, you can invoke the XSLT transformation, passing the XmlReader and XmlWriter to the transform. After the transformation successfully completes, the new XML tree is populated with the results of the transformation.

C#
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);
Visual Basic
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)

This example produces the following output:

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

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5

.NET Compact Framework

Supported in: 3.5

XNA Framework

Supported in: 3.0
See Also

Reference

Other Resources

Tags :


Page view tracker