Урок 7. Работаем с XML-файлом

Автор: admin | 20 Июнь 2008 – 19:31 -


Урок 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”.


Tags: , , , , , , , , , , , , , ,
Находится в Windows и C# | No Comments »

Ответить

Вы должны быть в системе, дабы комментировать.


C# — язык программирования, сочетающий объектно-ориентированные и аспектно-ориентированные концепции. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET. Компилятор с C# входит в стандартную установку самой .NET, поэтому программы на нём можно создавать и компилировать даже без инструментальных средств вроде Visual Studio. слюнявчик нагрудник C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к С++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML. Переняв многое от своих предшественников — языков С++, Java, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++).