C#:
XML:n käsittely

Kuinka:

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

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

        // Jäsennä merkkijono XDocumentiksi
        XDocument doc = XDocument.Parse(xmlMerkkijono);

        // Lisää uusi kirja
        doc.Element("bookstore").Add(
            new XElement("book",
                new XElement("title", "Learning XML", new XAttribute("lang", "en")),
                new XElement("price", 29.99)
            )
        );

        // Kirjoita XML konsoliin
        Console.WriteLine(doc);

        // Lataa asiakirja
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(xmlMerkkijono);

        // Hae kaikki hinnat
        XmlNodeList hinnat = xmlDoc.GetElementsByTagName("price");
        foreach (XmlNode hinta in hinnat)
        {
            Console.WriteLine(hinta.InnerText);
        }
     }
}

// Esimerkkituloste:
// <bookstore>
//  <book>
//    <title lang="en">Head First C#</title>
//    <price>39.99</price>
//  </book>
//  <book>
//    <title lang="en">Learning XML</title>
//    <price>29.99</price>
//  </book>
// </bookstore>
// 39.99
// 29.99

Syväsukellus

XML on ollut olemassa 90-luvun lopulta lähtien, tehden siitä suorastaan isoisän teknologiavuosissa. Se kehitettiin datan siirrettävyyden ja ihmisen luettavuuden helpottamiseksi. Vaihtoehtoiset formaatit kuten JSON ovat nyt sen kintereillä, erityisesti web-yhteyksissä, koska se on kevyempi ja monien mielestä yksinkertaisempi käsitellä. Mutta XML pitää yhä paikkansa monissa legacy-järjestelmissä ja tietyissä viestintäprotokollissa. XML:n kanssa saat skeeman rakenteen validoimiseen ja nimiavaruudet tagejen päällekkäisyyksien välttämiseksi – ominaisuuksia, jotka puhuvat sen yritysvalmiista kypsyydestä.

C#:ssa System.Xml.Linq ja System.Xml nimiavaruudet ovat kaksi suurta työkalua XML:n kanssa toimimiseen. LINQ to XML (XDocument, XElement) on modernimpi ja elegantimpi – olet nähnyt sen taikuuden esimerkissä. XmlDocument antaa sinulle DOM (Document Object Model) lähestymistavan – hieman vanhanaikainen, mutta jotkut vannovat sen voiman nimeen.

Katso myös