C#:
Werken met XML
Hoe:
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>";
// Parseer de string naar een XDocument
XDocument doc = XDocument.Parse(xmlString);
// Voeg een nieuw boek toe
doc.Element("bookstore").Add(
new XElement("book",
new XElement("title", "Leer XML", new XAttribute("lang", "en")),
new XElement("price", 29.99)
)
);
// Schrijf de XML naar de console
Console.WriteLine(doc);
// Laad het document
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlString);
// Haal alle prijzen op
XmlNodeList prijzen = xmlDoc.GetElementsByTagName("price");
foreach (XmlNode prijs in prijzen)
{
Console.WriteLine(prijs.InnerText);
}
}
}
// Voorbeelduitvoer:
// <bookstore>
// <book>
// <title lang="en">Head First C#</title>
// <price>39.99</price>
// </book>
// <book>
// <title lang="en">Leer XML</title>
// <price>29.99</price>
// </book>
// </bookstore>
// 39.99
// 29.99
Diepgaande duik
XML is er al sinds de late jaren ‘90, waardoor het een opa is in technologiejaren. Het is bedacht voor draagbaarheid van gegevens en gemak van menselijk lezen. Alternatieven zoals JSON nemen nu het stokje over, vooral in webcontexten, omdat het lichter is en voor velen eenvoudiger te hanteren. Maar XML houdt nog steeds zijn positie vast in talrijke legacy-systemen en bepaalde communicatieprotocollen. Met XML krijg je een schema om je structuur te valideren en namespaces om tag-conflicten te vermijden—functies die spreken van zijn bedrijfsklare volwassenheid.
In C# zijn System.Xml.Linq
en System.Xml
twee grote kanonnen om met XML te werken. LINQ to XML (XDocument
, XElement
) is moderner en eleganter—je hebt de magie ervan gezien in het voorbeeld. XmlDocument
geeft je de DOM (Document Object Model) benadering—een beetje ouderwets, maar sommigen zweren bij zijn kracht.