C# для Windows Урок 7. Работаем с XML-файлом
Для работы с XML на платформе .NET существует пространство имен
System.Xml. Подсоединим его к созданной нами Windows-программе. Для
этого добавим строку
...
using System.Xml;
наверху файла.
На форме разместите кнопоку. По нажатии на эту кнопку наша программа
выдаст из некого XML-файла все дочернии узлы первого уровня (т. е.
вложенные непосредственно в корневой тег).
В обработчике щелчка по кнопке напишите следующий код:
/// <summary>
/// Получение всех дочерних элементов.
/// </summary>
private void button1_Click(object sender, System.EventArgs e)
{
// Создаем новый xml-документ.
XmlDocument xml = new XmlDocument();
// Загружаем в xml-документ xml-файл.
xml.Load("1.xml");
// Берем корневой узел (тег) xml-документа.
XmlNode d = xml.DocumentElement;
// Берем все дочерние теги.
XmlNodeList xnl = d.ChildNodes;
// Перебираем все дочерние теги.
for (int i=0; i<d.ChildNodes.Count; i++)
{
// Выводим атрибуты тегов.
MessageBox.Show(xnl[i].Attributes["text"].Value + " " +
xnl[i].Attributes["rustext"].Value);
}
}
Обратите внимание, что в цикле, перебирающем все дочерние теги, мы
выводим значения для их некоторых атрибутов. Разумеется, эти атрибуты
должны у указанных тегов существовать.
Теперь займемся нашим xml-файлом. Его надо разместить в той же
папке, что и наш exe-файл (или написать полный или относительный путь в
методе Load для нашего xml-документа). Xml-файл может выглядеть так:
<?xml version="1.0" encoding="windows-1251" ?>
<item xmlns="http://127.0.0.1/1.xsd" text="root" rustext="Начало" url="/">
<item text="vc" rustext="Visual C++" url="/vcnet/">
<item text="mfc" rustext="MFC" url="" />
<item text="atl" rustext="ATL" url="" />
<item text="samples" rustext="Примеры" url="">
<item text="lines" rustext="Lines" url="" />
</item>
</item>
<item text="vbnet" rustext="VB.NET" url="/vbnet/">
<item text="console" rustext="Основы" url="" />
<item text="windows" rustext="Windows" url="" />
</item>
</item>
Как вы видите, тут несколько тегов, вложенных друг в друга. У нас
все теги называются item, хотя это и не принципиально - вложенные теги
могут иметь имена, отличные от корневого тега. У наших тегов
присутствую атрибуты (text, rustext, url). У каждого атрибута есть
некоторое значение.
Теперь запускаем программу. При нажатии на кнопку выведется два
последовательных messagebox'а (если, разумеется, вы использовали именно
приведенный xml-файл). В первом будет сообщение "vc Visual C++", во
втором - "vbnet VB.NET".
|