C#:
Arbeiten mit XML

Wie geht das:

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>";

        // Den String in ein XDocument parsen
        XDocument doc = XDocument.Parse(xmlString);

        // Ein neues Buch hinzufügen
        doc.Element("bookstore").Add(
            new XElement("book",
                new XElement("title", "Learning XML", new XAttribute("lang", "en")),
                new XElement("price", 29.99)
            )
        );

        // Das XML auf der Konsole ausgeben
        Console.WriteLine(doc);

        // Das Dokument laden
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(xmlString);

        // Alle Preise abrufen
        XmlNodeList prices = xmlDoc.GetElementsByTagName("price");
        foreach (XmlNode price in prices)
        {
            Console.WriteLine(price.InnerText);
        }
     }
}

// Beispielausgabe:
// <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

Tiefer Eintauchen

XML gibt es schon seit Ende der 90er Jahre, was es in Tech-Jahren zum Großvater macht. Es wurde für die Datenportabilität und die einfache Lesbarkeit durch Menschen erdacht. Alternativen wie JSON sind ihm mittlerweile auf den Fersen, besonders in Web-Kontexten, da es leichter und für viele einfacher zu handhaben ist. Aber XML hält sich immer noch in zahlreichen Alt-Systemen und bestimmten Kommunikationsprotokollen. Mit XML erhalten Sie ein Schema zur Validierung Ihrer Struktur und Namensräume, um Tag-Konflikte zu vermeiden – Funktionen, die von seiner unternehmensbereiten Reife zeugen.

In C# sind die System.Xml.Linq und System.Xml Namespaces zwei große Hilfsmittel, um mit XML zu arbeiten. LINQ to XML (XDocument, XElement) ist moderner und eleganter – Sie haben seine Magie im Beispiel gesehen. XmlDocument bietet Ihnen den DOM (Document Object Model)-Ansatz – ein bisschen altmodisch, aber einige schwören auf seine Kraft.

Siehe auch