Lectura de elementos
En la siguiente tabla se describen los métodos y propiedades que proporciona la clase XmlReader para procesar elementos.Después de que XmlReader se sitúe en un elemento, las propiedades del nodo como, por ejemplo, Name, reflejan los valores del elemento.Además de los miembros que se describen a continuación, también se puede utilizar cualquiera de los métodos y propiedades generales de la clase XmlReader para procesar elementos.Por ejemplo, puede utilizar el método ReadInnerXml para leer el contenido de un elemento.
Nota
Estos métodos incluyen una llamada inicial al método MoveToContent.
Nombre del miembro |
Descripción |
---|---|
Comprueba si el nodo actual es una etiqueta de inicio o una etiqueta de elemento vacío. |
|
Comprueba si el nodo actual es un elemento y hace avanzar el sistema de lectura hasta el siguiente nodo. |
|
Comprueba si el nodo actual es una etiqueta de fin y hace avanzar el sistema de lectura hasta el siguiente nodo. |
|
Lee un elemento de solo texto. |
|
Hace avanzar el XmlReader hasta el siguiente elemento descendiente con el nombre especificado. |
|
Hace avanzar el XmlReader hasta el siguiente elemento relacionado con el nombre especificado. |
|
Comprueba si el elemento actual tiene una etiqueta de elemento vacío.Esta propiedad le permite determinar la diferencia entre lo siguiente:
Dicho de otro modo, IsEmptyElement simplemente notifica si el elemento del documento de origen tiene una etiqueta de elemento final. |
Ejemplos
El siguiente código lee elementos utilizando los métodos ReadStartElement y ReadString.
Using reader As XmlReader = XmlReader.Create("book3.xml")
' Parse the XML document. ReadString is used to
' read the text content of the elements.
reader.Read()
reader.ReadStartElement("book")
reader.ReadStartElement("title")
Console.Write("The content of the title element: ")
Console.WriteLine(reader.ReadString())
reader.ReadEndElement()
reader.ReadStartElement("price")
Console.Write("The content of the price element: ")
Console.WriteLine(reader.ReadString())
reader.ReadEndElement()
reader.ReadEndElement()
End Using
using (XmlReader reader = XmlReader.Create("book3.xml")) {
// Parse the XML document. ReadString is used to
// read the text content of the elements.
reader.Read();
reader.ReadStartElement("book");
reader.ReadStartElement("title");
Console.Write("The content of the title element: ");
Console.WriteLine(reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("price");
Console.Write("The content of the price element: ");
Console.WriteLine(reader.ReadString());
reader.ReadEndElement();
reader.ReadEndElement();
}
El siguiente código procesa elementos utilizando un bucle While.
While reader.Read()
If reader.IsStartElement() Then
If reader.IsEmptyElement Then
Console.WriteLine("<{0}/>", reader.Name)
Else
Console.Write("<{0}> ", reader.Name)
reader.Read() ' Read the start tag.
If reader.IsStartElement() Then ' Handle nested elements.
Console.Write(vbCr + vbLf + "<{0}>", reader.Name)
End If
Console.WriteLine(reader.ReadString()) 'Read the text content of the element.
End If
End If
End While
while (reader.Read()) {
if (reader.IsStartElement()) {
if (reader.IsEmptyElement)
Console.WriteLine("<{0}/>", reader.Name);
else {
Console.Write("<{0}> ", reader.Name);
reader.Read(); // Read the start tag.
if (reader.IsStartElement()) // Handle nested elements.
Console.Write("\r\n<{0}>", reader.Name);
Console.WriteLine(reader.ReadString()); //Read the text content of the element.
}
}
}