Posición del nodo actual en XmlReader
La clase XmlReader proporciona acceso de sólo avance a un archivo o secuencia XML.El nodo actual es el nodo XML en el que está situado actualmente el sistema de lectura.Todos los métodos a los que se llama y todas las acciones que se realizan están relacionadas con el nodo actual, y todas las propiedades recuperadas reflejan el valor del nodo actual.
El sistema de lectura avanza mediante llamadas a uno de los métodos Read.Al llamar repetidamente al método Read, el sistema de lectura pasa al siguiente nodo.Normalmente, esas llamadas se realizan dentro de un bucle While.
En el siguiente ejemplo se muestra cómo navegar por la secuencia para determinar el tipo del nodo actual.
reader.MoveToContent()
' Parse the file and display each of the nodes.
While reader.Read()
Select Case reader.NodeType
Case XmlNodeType.Element
Console.Write("<{0}>", reader.Name)
Case XmlNodeType.Text
Console.Write(reader.Value)
Case XmlNodeType.CDATA
Console.Write("<![CDATA[{0}]]>", reader.Value)
Case XmlNodeType.ProcessingInstruction
Console.Write("<?{0} {1}?>", reader.Name, reader.Value)
Case XmlNodeType.Comment
Console.Write("<!--{0}-->", reader.Value)
Case XmlNodeType.XmlDeclaration
Console.Write("<?xml version='1.0'?>")
Case XmlNodeType.Document
Case XmlNodeType.DocumentType
Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value)
Case XmlNodeType.EntityReference
Console.Write(reader.Name)
Case XmlNodeType.EndElement
Console.Write("</{0}>", reader.Name)
End Select
End While
reader.MoveToContent();
// Parse the file and display each of the nodes.
while (reader.Read()) {
switch (reader.NodeType) {
case XmlNodeType.Element:
Console.Write("<{0}>", reader.Name);
break;
case XmlNodeType.Text:
Console.Write(reader.Value);
break;
case XmlNodeType.CDATA:
Console.Write("<![CDATA[{0}]]>", reader.Value);
break;
case XmlNodeType.ProcessingInstruction:
Console.Write("<?{0} {1}?>", reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
Console.Write("<!--{0}-->", reader.Value);
break;
case XmlNodeType.XmlDeclaration:
Console.Write("<?xml version='1.0'?>");
break;
case XmlNodeType.Document:
break;
case XmlNodeType.DocumentType:
Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value);
break;
case XmlNodeType.EntityReference:
Console.Write(reader.Name);
break;
case XmlNodeType.EndElement:
Console.Write("</{0}>", reader.Name);
break;
}
}
Las propiedades disponibles en la clase XmlReader no se pueden aplicar a todos los tipos de nodos.Por ejemplo, la propiedad IsEmptyElement devuelve true si el nodo actual es un elemento y termina con un carácter de barra diagonal hacia delante "/>".Al llamar a esta propiedad en cualquier tipo de nodo, se devuelve false porque esta propiedad no se puede aplicar a otros tipos de nodos.Para obtener una lista de todos los tipos de nodos, vea Tipos de nodos XML.
Vea también
Referencia
Conceptos
Leer fragmentos de XML con XmlReader