Sunday, 20.08.2017, 07:46
| RSS

Engineer M DevelopmentMA

Главная » 2009 » April » 8 » XML Editor на С#
XML Editor на С#
22:39

Данная программа была написана для учебных целей, вот и с вами решился поделиться. Я не делал обширные обсуждения, введение в основы XML. Описал основные операции, которая я мог совершить над XML данными. Просто попробовал закомментировать весь код. И представить вам чисто исходник, с каждой закомментированной строчкой. Наверно хорошая вещь получилось.

Проект написан в Visual Studio 2008.
 
XML файл:

<Machines>
  <Machine Id="1">
    <Name>BMW</Name>
    <Model>3</Model>
    <DoorsNumber>2</DoorsNumber>
  </Machine>
  <Machine Id="2">
    <Name>Mers</Name>
    <Model>SLC</Model>
    <DoorsNumber>5</DoorsNumber>
  </Machine>
  <Machine Id="3">
    <Name>Ford</Name>
    <Model>Focus</Model>
    <DoorsNumber>5</DoorsNumber>
  </Machine>
</Machines>
 
Класс Machine:
     /*

     * Класс Machine является шаблоном для заполнения данных о машине - это Id, Имя, Модель, Число Дверей.

    */

    public class Machine

    {

        public Machine()

        {

        }

        private int _id;

        public int Id

        {

            get { return _id; }

            set { _id = value; }

        }

        private string _name;

        public string Name

        {

            get { return _name; }

            set { _name = value; }

        }

        private string _model;

        public string Model

        {

            get { return _model; }

            set { _model = value; }

        }

        private int _doorsNumber;

        public int DoorsNumber

        {

            get { return _doorsNumber; }

            set { _doorsNumber = value; }

        }

    }
 Метод из класса MachineStore:
 

        public static List<Machine> GetAll()

        {

            //Создаем ленейный список с пользовательским типом Machine

            List<Machine> machines = new List<Machine>();

            /*Открываем поток для прочтения существующего файла Machines.xml. Пока FileStream выполняет

            чтение и запись в фоновом режиме, программа может исполняться и выполнять другой код.

            */

            FileStream fs = new FileStream("..\\..\\Machines.xml",FileMode.Open);

            //Создаем объект XmlDocument'а, с которым будем в дальнейшем работать

            XmlDocument doc = new XmlDocument();

            //Загружаем поток fs в XmlDocument doc

            doc.Load(fs);

            //myID создан для подсчета экземляров Machine, поступающих в лист machines.

            int myID = 0;

            /*

             * Обрабатываем подряд каждый элемент с XML тегом Machine (<Machine Id="1">...</Machine>).

             */

            foreach (XmlNode node in doc.GetElementsByTagName("Machine"))

            {

                //Создаем объект класса Machine

                Machine machine = new Machine();

                //Обрабатываем содержимое каждого элемента Machine, функция ChildNodes возвращает дочерние элементы.

                foreach (XmlNode obj in node.ChildNodes)

                {

                    //Переключатель для имени

                    switch (obj.Name)

                    {

                        //Получили дочерний тег <Name>...</Name>

                        case "Name":

                            //Получаем содержимое тега Name и приравниваем к переменной _name в классе machine

                            machine.Name = obj.InnerText;

                            break;

                        case "Model"://<Model>...</Model>

                            //Получаем содержимое тега Name и приравниваем к переменной _model в классе machine

                            machine.Model = obj.InnerText;

                            break;

                        case "DoorsNumber"://<DoorsNumber>...</DoorsNumber>

                            //Получаем содержимое тега DoorsNumber и приравниваем к переменной _doorsNumber в классе machine

                            machine.DoorsNumber = int.Parse(obj.InnerText);//типизируем obj.InnerText в int

                            break;

                    }

                 }

                myID++;//инкремент

                machine.Id = myID; //приравниваем к переменной _id в классе machine

                machines.Add(machine); //Добавляем экземпляр класса, который содержит информацию, в список.

            }

 

            fs.Close();//Закрываем поток

 

            return machines;//Возврощаем список всех машин

        }
 
Ну, а все описание найдете в исходниках. Так как имеются ограничения по созданию новостей.
Исходники тут
Категория: Lessons | Просмотров: 3151 | Добавил: admin | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Меню сайта
Разделы новостей
Concept Software [2]
Programs are planned or under construction.
Software [10]
Release Software
Lessons [12]
About Me [1]
Infa about yourself, documents, certificates ...
Documentation [4]
Documentation of projects
Календарь новостей
«  April 2009  »
SuMoTuWeThFrSa
   1234
567891011
12131415161718
19202122232425
2627282930
Поиск
Друзья сайта
Статистика
Copyright Macarov Anatoli © 2017
Free website builderuCoz