Compartir a través de


Leer árboles de nodos con XmlNodeReader

XmlNodeReader proporciona un sistema de lectura sobre un subárbol de nodo de Modelo de objetos de documento XML (DOM) determinado. Lee y devuelve los nodos del subárbol, incluidos los nodos de referencia a entidades.

La clase XmlNodeReader ofrece la funcionalidad siguiente:

  • Aplica las reglas para que XML tenga un formato correcto.

  • Expande atributos y entidades predeterminadas, si la información de la definición del tipo de documento (DTD) está presente en XmlDocument. Para más información sobre cómo obtener información de atributo predeterminado, consulte la propiedad XmlNodeReader.IsDefault.

Nota

En .NET Framework 2.0, la práctica recomendada es crear instancias XmlReader mediante la clase XmlReaderSettings y el método Create. Esto le permite sacar el máximo provecho de todas las nuevas características introducidas en .NET Framework.Para obtener más información, vea Creación de sistemas de lectura XML.

Ejemplo

Para crear XmlNodeReader a partir de 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
XmlDocument doc = new XmlDocument();
doc.Load("MyXml.xml");
XmlNodeReader nodereader = new XmlNodeReader (doc);
while (nodereader.Read()) {
    // Read the XmlDocument as a stream of XML.
}

XmlNodeReader puede también construirse con cualquier XmlNode dentro de XmlDocument.

En el ejemplo siguiente se pasa a un nodo en particular del XmlDocument mediante el método SelectSingleNode y una expresión XPath.A continuación, se crea un XmlNodeReader en esa posición.El archivo de entrada XML, test.xml, contiene los datos siguientes:

<root>
   <child>
      Child Text
   </child>
</root>
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
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 );
      }
   }
}

Vea también

Conceptos

Leer fragmentos de XML con XmlReader

Otros recursos

Uso de la clase XmlReader