Aracılığıyla paylaş


XNode.CreateReader Yöntem

Tanım

Bu düğüm için bir XmlReader oluşturur.

Aşırı Yüklemeler

CreateReader()

Bu düğüm için bir XmlReader oluşturur.

CreateReader(ReaderOptions)

parametresi tarafından readerOptions belirtilen seçeneklerle bir XmlReader oluşturur.

CreateReader()

Bu düğüm için bir XmlReader oluşturur.

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

Döndürülenler

XmlReader

XmlReader Bu düğümü ve alt öğelerini okumak için kullanılabilecek bir.

Örnekler

Aşağıdaki örnek bir XML ağacı oluşturur, yöntemini kullanarak CreateReader bir XmlReader oluşturur ve okuyucuyu kullanarak bir XmlDocument oluşturur.

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)  

Bu örnek aşağıdaki çıkışı oluşturur:

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

Bu yöntemin başka bir kullanımı da XSLT dönüşümü yapmaktır. XML ağacı oluşturabilir, XML ağacından bir XmlReader oluşturabilir, yeni bir belge oluşturabilir ve yeni belgeye yazacak bir XmlWriter oluşturabilirsiniz. Ardından, ve'yi XmlWriter dönüştürmeye geçirerek XmlReader XSLT dönüştürmesini çağırabilirsiniz. Dönüştürme başarıyla tamamlandıktan sonra, yeni XML ağacı dönüşümün sonuçlarıyla doldurulur.

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)  

Bu örnek aşağıdaki çıkışı oluşturur:

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

Açıklamalar

Genellikle bir ile başka bir XmlReaderbileşen sağlamanız gerektiğinde bu yöntemi kullanırsınız. Örneğin, bir LINQ to XML ağacından bir XmlReader oluşturabilir ve ardından bu okuyucuya Loadgeçirebilirsiniz.

tarafından Create döndürülen tüm okuyucular okuyucuları normalleştiriyor. Her zaman satır sonu normalleştirmesi ve özniteliklerin tam normalleştirmesini gerçekleştirirler. Buna karşılık, XmlReader tarafından CreateReader döndürülen bir normalleştirme okuyucusu değildir. Hiçbir boşluğu dönüştürmez. Ayrıca öznitelikleri öznitelik adı sırasına göre değil, eklendikleri sırayla döndürür.

LINQ to XML özniteliklerin varsayılan öznitelik olup olmadığıyla ilgili bilgileri tutmaz. IsDefault özniteliğinin varsayılan bir değerden doldurulup doldurulmadığından bağımsız olarak her zaman false döndürür.

PUBLIC üzerindeki XDocumentType ve SYSTEM sahte öznitelikleri yöntemi aracılığıyla XmlReader.MoveToAttribute kullanılamaz. Bunlar yalnızca özniteliğin XmlReader.GetAttribute tam adını parametre olarak alan yöntemi aracılığıyla kullanılabilir. veya SYSTEM özniteliklerini almanız PUBLIC gerekiyorsa yöntemini kullanmanız XmlReader.GetAttribute gerekir.

Base64 ve BinHex verileri desteklenmez. Bu tür verileri almaya çalışırsanız (örneğin, çağrısı ReadElementContentAsBase64yaparak), okuyucu oluşturur NotSupportedException.

Bildirim xml okuyucu tarafından gösterilmez. Okurken türünde XmlDeclarationbir düğümle karşılaşmazsınız.

Ayrıca bkz.

Şunlara uygulanır

CreateReader(ReaderOptions)

parametresi tarafından readerOptions belirtilen seçeneklerle bir XmlReader oluşturur.

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
Public Function CreateReader (readerOptions As ReaderOptions) As XmlReader

Parametreler

readerOptions
ReaderOptions

ReaderOptions Yinelenen ad alanlarının atlanıp atılmayacağını belirten bir nesne.

Döndürülenler

XmlReader

Bir XmlReader nesnesi.

Şunlara uygulanır