XNode.CreateReader XNode.CreateReader XNode.CreateReader XNode.CreateReader Method

定義

このノードの XmlReader を作成します。Creates an XmlReader for this node.

オーバーロード

CreateReader() CreateReader() CreateReader() CreateReader()

このノードの XmlReader を作成します。Creates an XmlReader for this node.

CreateReader(ReaderOptions) CreateReader(ReaderOptions) CreateReader(ReaderOptions)

readerOptions パラメーターでオプションを指定して、XmlReader を作成します。Creates an XmlReader with the options specified by the readerOptions parameter.

CreateReader() CreateReader() CreateReader() CreateReader()

このノードの XmlReader を作成します。Creates an XmlReader for this node.

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

戻り値

このノードとその子孫の読み取りに使用される XmlReaderAn XmlReader that can be used to read this node and its descendants.

次の例では、XML ツリーを作成、作成、XmlReaderを使用して、CreateReaderメソッドを作成し、XmlDocumentリーダーを使用しています。The following example creates an XML tree, creates an XmlReader by using the CreateReader method, and creates an XmlDocument by using the reader.

XDocument xmlTree = new XDocument(  
    new XElement("Root",  
        new XAttribute("Att1", "Attribute Content"),  
        new XElement("Child1", 1),  
        new XElement("Child2", 2)  
    )  
);  
XmlReader reader = xmlTree.CreateReader();  
reader.MoveToContent();  
XmlDocument doc = new XmlDocument();  
XmlNode cd = doc.ReadNode(reader);  
doc.AppendChild(cd);  
Console.WriteLine(doc.OuterXml);  
Dim xmlTree As XDocument =  _   
    <?xml version="1.0" encoding="utf-8" standalone="yes"?>  
        <Root Att1="Attribute Content">  
            <Child1>1</Child1>  
            <Child2>2</Child2>  
        </Root>  
Dim reader As XmlReader = xmlTree.CreateReader()  
reader.MoveToContent()  
Dim doc As XmlDocument = New XmlDocument()  
Dim cd As XmlNode = doc.ReadNode(reader)  
doc.AppendChild(cd)  
Console.WriteLine(doc.OuterXml)  

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

<Root Att1="Attribute Content"><Child1>1</Child1><Child2>2</Child2></Root>  

このメソッドの別の用途では、XSLT 変換を実行します。Another use for this method is to do an XSLT transformation. この例では、XML ツリーを作成し、この XML ツリーから XmlReader を作成して、新しいドキュメントを作成します。次に、この新しいドキュメントに書き込むために XmlWriter を作成します。You can create an XML tree, create an XmlReader from the XML tree, create a new document, and create an XmlWriter that will write into the new document. 次に、XSLT 変換を呼び出し、変換処理に XmlReader および XmlWriter を渡すことができます。Then, you can invoke the XSLT transformation, passing the XmlReader and XmlWriter to the transformation. 変換が正常に完了すると、新しい XML ツリーに変換結果が挿入されます。After the transformation successfully completes, the new XML tree is populated with the results of the transform.

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>  

注釈

別のコンポーネントを指定するときに通常このメソッドを使用する、XmlReaderします。You typically use this method when you have to supply another component with an XmlReader. たとえば、作成、XmlReaderから、LINQ to XMLLINQ to XMLツリー、し、そのリーダーを渡すLoadします。For example, you can create an XmlReader from a LINQ to XMLLINQ to XML tree, and then pass that reader to Load.

によって返されるリーダーのすべてCreateリーダーが正規化されます。All of the readers returned by Create are normalizing readers. 改行の正規化と属性の完全な正規化を常に実行します。They always perform line break normalization and full normalization of attributes. これに対し、XmlReaderによって返されるCreateReader正規化のリーダーではありません。In contrast, the XmlReader returned by CreateReader is not a normalizing reader. 任意の空白文字は変換しません。It does not transform any white space. また、追加された順序で、属性名の順ではなく属性を返します。It also returns attributes in the order that they were added, not in attribute name order.

LINQ to XMLLINQ to XML 属性の既定の属性がかどうかに関する情報を保持しません。does not keep information about whether attributes are default attributes. IsDefault 常に false を返します、属性が既定値から設定されたかどうかどうかに関係なく。IsDefault will always return false regardless of whether the attribute was populated from a default value or not.

PUBLICSYSTEM擬似属性をXDocumentTypeでは利用できず、XmlReader.MoveToAttributeメソッド。The PUBLIC and SYSTEM pseudo attributes on XDocumentType are not available through the XmlReader.MoveToAttribute method. 利用はのみ、XmlReader.GetAttributeをパラメーターとして属性の修飾名を受け取るメソッド。They are only available through the XmlReader.GetAttribute method that takes the qualified name of the attribute as a parameter. 取得する必要がある場合、PUBLICまたはSYSTEM属性を使用する必要がある、XmlReader.GetAttributeメソッド。If you have to retrieve the PUBLIC or SYSTEM attributes, you should use the XmlReader.GetAttribute method.

Base64、BinHex のデータがサポートされていません。Base64 and BinHex data are not supported. これらのデータ型を取得しようとした場合 (など、呼び出すことによってReadElementContentAsBase64)、リーダーがスローされますNotSupportedExceptionします。If you attempt to retrieve these types of data (for example, by calling ReadElementContentAsBase64), the reader will throw NotSupportedException.

xml宣言はリーダーには表示されません。The xml declaration is not surfaced by the reader. 読み取り中に、発生しない型のノードXmlDeclarationします。While reading, you will not encounter a node of type XmlDeclaration.

こちらもご覧ください

CreateReader(ReaderOptions) CreateReader(ReaderOptions) CreateReader(ReaderOptions)

readerOptions パラメーターでオプションを指定して、XmlReader を作成します。Creates an XmlReader with the options specified by the readerOptions parameter.

public:
 System::Xml::XmlReader ^ CreateReader(System::Xml::Linq::ReaderOptions readerOptions);
public System.Xml.XmlReader CreateReader (System.Xml.Linq.ReaderOptions readerOptions);
member this.CreateReader : System.Xml.Linq.ReaderOptions -> System.Xml.XmlReader

パラメーター

readerOptions
ReaderOptions ReaderOptions ReaderOptions ReaderOptions

重複する名前空間を省略するかどうかを指定する ReaderOptions オブジェクト。A ReaderOptions object that specifies whether to omit duplicate namespaces.

戻り値

XmlReader オブジェクト。An XmlReader object.

適用対象