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

반환

이 노드 및 하위 요소를 읽는 데 사용할 수 있는 XmlReader입니다.An 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. 그런 다음 XmlReaderXmlWriter를 변환에 전달하여 XSLT 변환을 호출할 수 있습니다.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.

PUBLIC 하 고 SYSTEM 의사 특성 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.

반환

적용 대상