C#:
Работа с XML

Как это сделать:

using System;
using System.Xml;
using System.Xml.Linq;

class Program
{
     static void Main()
     {
        var xmlString = @"<bookstore>
                            <book>
                              <title lang=""en"">Head First C#</title>
                              <price>39.99</price>
                            </book>
                          </bookstore>";

        // Разбор строки в XDocument
        XDocument doc = XDocument.Parse(xmlString);

        // Добавление новой книги
        doc.Element("bookstore").Add(
            new XElement("book",
                new XElement("title", "Изучаем XML", new XAttribute("lang", "en")),
                new XElement("price", 29.99)
            )
        );

        // Вывод XML в консоль
        Console.WriteLine(doc);

        // Загрузка документа
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(xmlString);

        // Извлечение всех цен
        XmlNodeList prices = xmlDoc.GetElementsByTagName("price");
        foreach (XmlNode price in prices)
        {
            Console.WriteLine(price.InnerText);
        }
     }
}

// Пример вывода:
// <bookstore>
//  <book>
//    <title lang="en">Head First C#</title>
//    <price>39.99</price>
//  </book>
//  <book>
//    <title lang="en">Изучаем XML</title>
//    <price>29.99</price>
//  </book>
// </bookstore>
// 39.99
// 29.99

Глубокое погружение

XML появился в конце 90-х, что делает его дедушкой в технологические годы. Он был создан для портативности данных и удобства чтения людьми. Альтернативы вроде JSON сейчас наступают ему на пятки, особенно в веб-контекстах, потому что он более легкий и для многих проще в обращении. Но XML по-прежнему удерживает свои позиции во множестве устаревших систем и в некоторых протоколах связи. С XML вы получаете схему для проверки вашей структуры и пространства имен для избежания конфликтов тегов — особенности, которые говорят о его готовности к использованию в крупных предприятиях.

В C#, пространства имен System.Xml.Linq и System.Xml являются двумя основными инструментами для работы с XML. LINQ to XML (XDocument, XElement) более современный и элегантный — вы увидели его магию на примере. XmlDocument предоставляет вам подход DOM (Document Object Model) — немного старомодный, но некоторые люди клянутся его мощью.

Смотрите также