C#:
Lavorare con XML
Come fare:
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>";
// Analizza la stringa in un XDocument
XDocument doc = XDocument.Parse(xmlString);
// Aggiungi un nuovo libro
doc.Element("bookstore").Add(
new XElement("book",
new XElement("title", "Imparare XML", new XAttribute("lang", "en")),
new XElement("price", 29.99)
)
);
// Scrivi l'XML sulla console
Console.WriteLine(doc);
// Carica il documento
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlString);
// Recupera tutti i prezzi
XmlNodeList prices = xmlDoc.GetElementsByTagName("price");
foreach (XmlNode price in prices)
{
Console.WriteLine(price.InnerText);
}
}
}
// Output di esempio:
// <bookstore>
// <book>
// <title lang="en">Head First C#</title>
// <price>39.99</price>
// </book>
// <book>
// <title lang="en">Imparare XML</title>
// <price>29.99</price>
// </book>
// </bookstore>
// 39.99
// 29.99
Approfondimento
XML esiste fin dagli anni ‘90, rendendolo un nonno negli anni tecnologici. È stato concepito per la portabilità dei dati e la facilità di lettura umana. Alternative come JSON stanno ora rosicchiando il suo terreno, specialmente nei contesti web, perché è più leggero e, per molti, più semplice da gestire. Ma XML mantiene ancora la sua posizione in numerosi sistemi legacy e certi protocolli di comunicazione. Con XML, ottieni uno schema per validare la tua struttura e namespace per evitare conflitti di tag—funzionalità che parlano della sua maturità pronta per l’impresa.
In C#, System.Xml.Linq
e System.Xml
sono due grandi risorse per lavorare con XML. LINQ to XML (XDocument
, XElement
) è più moderno ed elegante—hai visto la sua magia nell’esempio. XmlDocument
ti offre l’approccio DOM (Document Object Model)—un po’ vecchia scuola, ma alcuni lo giurano per il suo potere.