Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)


Я записываю курсы!
  Курс валют

НБУ курс евро






c# добавление элементов в дерево xml (вставка новой записи узлов в xml документе)



В прошлой статье мы поговорили о том, как удалять элементы из xml-файла. Сегодня же я покажу как можно добавлять новые записи в дерево xml файла.

Структура xml-файла прежняя:

Person.xml
 
<?xml version="1.0" encoding="utf-8"?>
<PEOPLE>
  <Man>
    <name>Саша</name>
    <surName>Гудок</surName>
    <Country>Украина</Country>
  </Man>
  <Man>
    <<name>Андрей</name>
    <surName>Нагорный</surName>
    <Country>Словакия</Country>
  </Man>
  <Man>
</PEOPLE>

Процесс добавления новой записи начинается с проверки существования такой же записи в данном документе. Это можно осуществить либо способом, описанном в статье, либо приведенным здесь методом CheckForExistPersonByName (информация о всех используемых неописанных в данном коде переменных представлена в статье):

using System.IO;
using System.Xml;

bool CheckForExistPersonByName(string name, string surName)
{
  using(FileStream fStream = new FileStream(
     path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
  {
    System.Xml.XmlDocument CXML = new System.Xml.XmlDocument(); 
    CXML.Load(fStream);

    for (int i=0; i<CXML.DocumentElement.ChildNodes.Count; i++)
    {
      string fname = String.Format("{0}", 
       CXML.DocumentElement.ChildNodes[i].FirstChild.InnerText);
      string fsurname = 
       CXML.DocumentElement.ChildNodes[i].FirstChild.
NextSibling.InnerText;
      if (name == fname && surName == fsurname)
       return true;
    }
  }
 
  return false;
}

Сам же код добавления новой записи будет таким:

string AddPerson(List newData, string description)
{
    string[] tagName = 
      new string[] { "name", "surName", "Country" };

    if (CheckForExistPersonByName(newData[0], newData[1]))
        return "Такая персона уже имеется в БД";
    try
    {
        //create the reader filestream (fs) 
        using (fStream = new FileStream(path, FileMode.Open,
           FileAccess.Read, FileShare.ReadWrite))
        {
            //Create the xml document 
            xmlDoc = new XmlDocument();

            //Load the xml document 
            xmlDoc.Load(fStream);

            //Close the fs filestream 
            fStream.Close();
        }
    }
    catch
    {
        return "Персона не была добавлена";
    }
  
    try
    {
        XmlElement newitem;
        XmlElement newOUTERitem = 
          xmlDoc.CreateElement("Man");

        for (int i = 0; i < tagName.Length; i++)
        {
	        // create the new element (node)
            newitem = xmlDoc.CreateElement(tagName[i]);

            // Put the value (inner Text) into the node 
            newitem.InnerText = newData[i];
	        // Close node
            newOUTERitem.AppendChild(newitem);
        }
        // Close outer node
        xmlDoc.DocumentElement.InsertAfter(
          newOUTERitem, xmlDoc.DocumentElement.LastChild);

        //Save the XML file 
        FileStream WRITER = new FileStream(path, 
          FileMode.Truncate, FileAccess.Write, 
          FileShare.ReadWrite);
        
        xmlDoc.Save(WRITER);

        //Close the writer filestream 
        WRITER.Close();

    }
    catch
    {
        return "Персона не была добавлена";
    }
}

В прошлых статьях мы достаточно поговорили о нюансах в работе с xmlдокументами, поэтому, объяснять работу данного кода я не стану, тем более, что обширные комментарии это выполнили за меня.



Больше информации читайте по теме:



Оценить статью:

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

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        


        Евгений    08.10.2010 12:05:38
        

Спасибо, очень помогло.


        Саша Гудок    21.10.2010 9:54:22
        

:)




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Сантехник срочно
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок