progs.biz  
Начало>C#>Windows>Урок 7
C#
VB.NET
Visual C++.NET
Visual C++ 6
WinAPI
C++
Delphi
C++ Builder
Java
PHP
Visual Basic 6.0
DirectX
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

Э. Троелсен. C# и платформа .NET.
Э. Троелсен. C# и платформа .NET.
Заказать на Озоне


SpyLOG
Яндекс-цитирования

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

Рассылки нашего сайта на Subscribe.Ru
Visual C++, MFC
C# и .NET
VB.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX new!
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz
Label

 
 
Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2004 сайт progs.biz
© 2002-2004 Алексеев Игорь