XML в С# Урок 2. Чтение XML файла

.NET XML   11 июля 2012  Автор статьи:  

В данный статье мы будем использовать последовательное чтение XML файла, что может быть не всегда оптимальным решением. При таком чтении нельзя свободно перемещаться между элементами, что заставляет нас полностью пробежаться по всему XML документу.Для реализации такого подхода будем использовать класс XmlTextReader. Для чтение пустим цикл, в котором мы будем получать следующий элемент XML документа и определять его тип для дальнейший его обработки. Для того, чтобы узнать какой тип имеет текущий узел можно свойством NodeType, которое вернет одно из следующих значений:

  • Attribute (атрибут)
  • Comment (комментарий)
  • Element (элемент)
  • Text (текст)
  • XmlDeclaration

Полное перечисление всех возможных типов узлов содержится в перечисление(enum) XmlNodeType. После проверки типа узла можно узнать его имя или его значение. Попробуем обработать полученный в предыдущем уроке XML файл:




1500

Alex



Для этого обработаем основные узлы, которые могут представлять для нас интерес. Пусть это будем описание XML, элементы XML и текст. Для обработки атрибутов у элемента, пустим внутри обработки элемента цикл, который пробежится по всем атрибутам у элемента и выведет их нам на экран. Для этого используется функция MoveToNextAttribute(), которая возвращает, есть ли еще атрибуты у данного элемента.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace XMLPresentation
{
class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\LordRP\Desktop\1.xml";//путь до файла
XmlTextReader reader = new XmlTextReader(path);
StringBuilder s = new StringBuilder();
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.XmlDeclaration:
s.AppendLine("Описание XML: Name = " + reader.Name + " Value =" + reader.Value);
break;
case XmlNodeType.Element:
s.AppendLine("Элемент Name = " + reader.Name);
while (reader.MoveToNextAttribute())
{
s.Append("Атрибут Name = " + reader.Name + " Value = " + reader.Value);
}
s.AppendLine();
break;
case XmlNodeType.Text:
s.AppendLine("Текст Value = " + reader.Value);
break;
}
}
reader.Close();
Console.Write(s.ToString());
}
}
}

После исполнения данной программы на экран выведется следующее:
Описание XML: Name = xml Value =version=»1.0″
Элемент Name = university
Атрибут Name = ID Value = 64Атрибут Name = Name Value = SSU
Элемент Name = StudentCount

Текст Value = 1500
Элемент Name = department
Атрибут Name = Name Value = CSIT
Элемент Name = Student

Текст Value = Alex
Надеюсь данная тестовая программа поможет вам разобраться, как читать информацию из XML документа.

Научиться программировать

  • на Delphi

  • на Java

  • на C++