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