Чтение элементов
В следующей таблице представлены методы и свойства, которые класс XmlReader предоставляет для элементов обработки.После того, как объект XmlReader позиционируется на элементе, свойства узла, например Name, отражают значения этого элемента.Кроме описанных ниже членов для обработки элементов могут также использоваться любые методы и свойства класса XmlReader.Например, для чтения содержимого элемента используется метод ReadInnerXml.
Примечание
Эти методы включают первоначальный вызов метода MoveToContent.
Имя члена |
Описание |
---|---|
Проверяет, является ли текущий тег открывающим или пустым тегом элемента. |
|
Проверяет, является ли текущий узел элементом и перемещает модуль чтения к следующему узлу. |
|
Проверяет, является ли текущий узел закрывающим тегом и перемещает модуль чтения к следующему узлу. |
|
Считывает элемент, предназначенный только для чтения. |
|
Перемещает объект XmlReader к следующему элементу-потомку с заданным именем. |
|
Перемещает XmlReader к следующему одноуровневому элементу с заданным именем. |
|
Проверяет, имеет ли текущий элемент пустой тег элемента.Это свойство позволяет определить разницу между:
Другими словами, свойство 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.
}
}
}