Поделиться через


Чтение элементов

В следующей таблице представлены методы и свойства, которые класс XmlReader предоставляет для элементов обработки.После того, как объект XmlReader позиционируется на элементе, свойства узла, например Name, отражают значения этого элемента.Кроме описанных ниже членов для обработки элементов могут также использоваться любые методы и свойства класса XmlReader.Например, для чтения содержимого элемента используется метод ReadInnerXml.

Примечание

Эти методы включают первоначальный вызов метода MoveToContent.

Имя члена

Описание

IsStartElement

Проверяет, является ли текущий тег открывающим или пустым тегом элемента.

ReadStartElement

Проверяет, является ли текущий узел элементом и перемещает модуль чтения к следующему узлу.

ReadEndElement

Проверяет, является ли текущий узел закрывающим тегом и перемещает модуль чтения к следующему узлу.

ReadElementString

Считывает элемент, предназначенный только для чтения.

ReadToDescendant

Перемещает объект XmlReader к следующему элементу-потомку с заданным именем.

ReadToNextSibling

Перемещает XmlReader к следующему одноуровневому элементу с заданным именем.

IsEmptyElement

Проверяет, имеет ли текущий элемент пустой тег элемента.Это свойство позволяет определить разницу между:

  • <item num="123"/> (IsEmptyElement имеет значение true);

  • <item num="123"> (IsEmptyElement имеет значение false, хотя содержимое элемента пусто).

Другими словами, свойство IsEmptyElement просто сообщает, имеет ли элемент исходного документа закрывающий тег.

Примеры

Следующий код считывает элементы с помощью методов ReadStartElement и 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();

}

Следующий код обрабатывает элементы с помощью цикла 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.
    }
  } 
} 

См. также

Основные понятия

Чтение XML с помощью XmlReader