Lesen von Knotenstrukturen mit dem "XmlNodeReader"

Der XmlNodeReader stellt einen Reader über eine gegebene DOM-Knotenteilstruktur bereit. Er liest Knoten in der Teilstruktur, einschließlich Entitätsverweisknoten, und gibt diese zurück.

Der XmlNodeReader bietet die folgenden Funktionen:

  • Er implementiert die Regeln für wohlgeformten XML-Code.
  • Er erweitert Standardattribute und -entitäten, wenn DTD-Informationen im XmlDocument vorhanden sind. Weitere Informationen zum Abrufen von Informationen über Standardattribute finden Sie unter XmlReader.IsDefault-Eigenschaft.

Der folgende Code zeigt die Erstellung eines XmlNodeReaders aus einem XmlDocument:

Dim doc As New XmlDocument()
doc.Load("MyXml.xml")
Dim nodereader As New XmlNodeReader(doc)
While nodereader.Read()
   ' Read the XmlDocument as a stream of XML
End While
[C#]
XmlDocument doc = new XmlDocument();
doc.Load("MyXml.xml");
XmlNodeReader nodereader = new XmlNodeReader (doc);
while (nodereader.Read()) {
    // Read the XmlDocument as a stream of XML
}

Ein XmlNodeReader kann auch mit einem beliebigen XmlNode innerhalb des XmlDocuments konstruiert werden.

Im folgenden Beispiel wird mit der Select-Methode und einem XPath-Ausdruck zu einem bestimmten Knoten im XmlDocument gewechselt. Anschließend wird an dieser Position ein XmlNodeReader erstellt. Die XML-Eingabedatei, Test.xml, enthält die folgenden Daten:

Imports System
Imports System.Xml

Public Class Test
   
    Public Shared Sub Main()
        Dim doc As New XmlDocument()
        doc.Load("test.xml")
        Dim child As XmlNode = doc.SelectSingleNode("/root/child")
        If Not (child Is Nothing) Then
            Dim nr As New XmlNodeReader(child)
            While nr.Read()
                Console.WriteLine(nr.Value)
            End While
        End If
    End Sub 'Main
End Class 'Test
[C#]
using System;
using System.Xml;
public class Test {
   public static void Main() {
      XmlDocument doc = new XmlDocument();
      doc.Load("test.xml");
      XmlNode child = doc.SelectSingleNode("/root/child");
      if (child != null) {
         XmlNodeReader nr = new XmlNodeReader(child );
         while (nr.Read() )
            Console.WriteLine( nr.Value );
      }
   }
}

Siehe auch

Lesen von XML mit dem "XmlReader" | Lesen von XML-Daten mit "XmlTextReader" | Überprüfen von XML mit "XmlValidatingReader" | XmlReader-Klasse | XmlReader-Member | XmlNodeReader-Klasse | XmlNodeReader-Member | XmlTextReader-Klasse | XmlTextReader-Member | XmlValidatingReader-Klasse | XmlValidatingReader