Compartir a través de


Lectura de elementos

Actualización: November 2007

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

IsStartElement

Comprueba si el nodo actual es una etiqueta de inicio o una etiqueta de elemento vacío.

ReadStartElement

Comprueba si el nodo actual es un elemento y hace avanzar el sistema de lectura hasta el siguiente nodo.

ReadEndElement

Comprueba si el nodo actual es una etiqueta de fin y hace avanzar el sistema de lectura hasta el siguiente nodo.

ReadElementString

Lee un elemento de sólo texto.

ReadToDescendant

Hace avanzar el XmlReader hasta el siguiente elemento descendiente con el nombre especificado.

ReadToNextSibling

Hace avanzar el XmlReader hasta el siguiente elemento relacionado con el nombre especificado.

IsEmptyElement

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.
    }
  } 
} 

Vea también

Conceptos

Leer fragmentos de XML con XmlReader