XContainer.CreateWriter XContainer.CreateWriter XContainer.CreateWriter XContainer.CreateWriter Method

定義

XmlWriter にノードを追加するために使用できる XContainer を作成します。Creates 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

戻り値

それに内容を書き込む準備ができている XmlWriterAn XmlWriter that is ready to have content written to it.

このメソッドを使用すると、XSLT 変換を実行します。You can use this method to perform an XSLT transformation. XML ツリーを作成、作成することができます、 XmlReader 、XML ツリーから、新しいドキュメントを作成し、作成、XmlWriterに新しいドキュメントに書き込みます。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. 渡す、XSLT 変換を呼び出すことができますし、XmlReaderXmlWriterに変換します。Then, you can invoke the XSLT transformation, passing the XmlReader and XmlWriter to the transform. 変換が正常に完了すると、新しい XML ツリーに変換結果が挿入されます。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)  

この例を実行すると、次の出力が生成されます。This example produces the following output:

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

注釈

をシリアル化中には、名前空間プレフィックスは、XML ツリー内の名前空間の属性から推論されます。While serializing, namespace prefixes are inferred from the namespace attributes in the XML tree.

詳細については、次を参照してください。 XML 名前空間の使用します。For more information, see Working with XML Namespaces.

適用対象

こちらもご覧ください