C#:
Att arbeta med XML
Hur man gör:
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>";
// Tolka strängen till ett XDocument
XDocument doc = XDocument.Parse(xmlString);
// Lägg till en ny bok
doc.Element("bookstore").Add(
new XElement("book",
new XElement("title", "Learning XML", new XAttribute("lang", "en")),
new XElement("price", 29.99)
)
);
// Skriv ut XML till konsolen
Console.WriteLine(doc);
// Ladda dokumentet
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlString);
// Hämta alla priser
XmlNodeList prices = xmlDoc.GetElementsByTagName("price");
foreach (XmlNode price in prices)
{
Console.WriteLine(price.InnerText);
}
}
}
// Exempelutdata:
// <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
Djupdykning
XML har funnits sedan sent ‘90-tal, vilket gör det till en farfar i teknologiår. Det trollades fram för portabilitet av data och läslighet för människor. Alternativ som JSON nafsar nu på dess klackar, särskilt i webbsammanhang, eftersom det är lättare och, för många, enklare att hantera. Men XML håller fortfarande stånd i många äldre system och vissa kommunikationsprotokoll. Med XML får du ett schema för att validera din struktur och namnrymder för att undvika taggkonflikter—funktioner som talar för dess företagsklara mognad.
I C#, är System.Xml.Linq
och System.Xml
namnrymder två stora verktyg för att arbeta med XML. LINQ till XML (XDocument
, XElement
) är modernare och mer elegant—du såg dess magi i exemplet. XmlDocument
ger dig DOM (Document Object Model) tillvägagångssättet - lite gammaldags, men vissa svär vid dess kraft.