C # read xml

XML - текстовий формат, призначений для зберігання структурованих даних. По суті - це база даних в текстовому структурованому файлі. XML має реалізації парсеров для всіх сучасних мов програмування і засобів розробки.

У Visual Studio існує безліч способів роботи з xml (всі вони знаходяться в просторі імен System.Xml):

  • XmlTextReader, XmlTextWriter;
  • XmlDocument;
  • Linq.XDocument;
  • Schema.XmlSchema.

На мій погляд, найпростіший, гнучкий і інтуїтивно зрозумілий спосіб обробки xml файлу - за допомогою класів XmlTextReader і XmlTextWriter. До того ж він показує досить непогані результати по швидкості роботи.

Матеріал подається послідовно, тому якщо вам потрібно просто подивитися приклад роботи з xml, можете відразу перейти до цікавого для розділу:

Підключимо в нашому проекті простору імен:

C # read xml

На C # read xml здійснюється за допомогою класу XmlTextReader. Він доступний у всіх версіях .Net Framework, починаючи з 1.0. XmlTextReader реалізує методи «тільки вперед», тобто забезпечує строго послідовний обхід XML-файла. За рахунок цього досягається досить хороша швидкість обробки даних.

Примітка. при читанні тега, який має на увазі вкладеність, потрібно крім перевірки reader.IsStartElement ( "Книга") ще перевіряти, що цей елемент не порожній! reader.IsEmptyElement. Інакше при наявності такої конструкції <книга /> (Тобто відкривається тег є і закривається) програма увійде у вкладений цикл і вже не вийде з нього до закінчення xml файлу.

C # create xml

Тепер напишемо функцію WriteXml. На вхід подамо ім'я нового файлу newAuthor.xml і сформований попередньою функцією Author.

Для створення на C # create xml файлу будемо використовувати клас XmlTextWriter. За допомогою нього можна задавати параметри форматування xml. Наприклад, в нашій функції для відступу тегів використовується один знак табуляції.

Вкладені теги створюються за допомогою функції WriteStartElement (). На кожен WriteStartElement () повинен бути закриває його WriteEndElement ().

повний лістинг програми на C # xml read and create

В кінці статті наведено повний лістинг програми: