C#:
Praca z XML
Jak to zrobić:
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>";
// Analiza ciągu znaków na XDocument
XDocument doc = XDocument.Parse(xmlString);
// Dodaj nową książkę
doc.Element("bookstore").Add(
new XElement("book",
new XElement("title", "Learning XML", new XAttribute("lang", "en")),
new XElement("price", 29.99)
)
);
// Wypisz XML na konsolę
Console.WriteLine(doc);
// Załaduj dokument
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlString);
// Pobierz wszystkie ceny
XmlNodeList prices = xmlDoc.GetElementsByTagName("price");
foreach (XmlNode price in prices)
{
Console.WriteLine(price.InnerText);
}
}
}
// Przykładowy wynik:
// <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
Wgłębienie
XML istnieje od końca lat ‘90, co czyni go dziadkiem w latach technologicznych. Został wymyślony dla przenośności danych i łatwości odczytu przez ludzi. Alternatywy takie jak JSON teraz depczą mu po piętach, zwłaszcza w kontekstach sieciowych, ponieważ jest lżejszy i, dla wielu, prostszy w obsłudze. Ale XML nadal trzyma się mocno w wielu starszych systemach i pewnych protokołach komunikacyjnych. Z XML-em otrzymujesz schemat do walidacji swojej struktury i przestrzenie nazw, aby uniknąć konfliktów tagów—cechy, które mówią o jego gotowości na wykorzystanie w przedsiębiorstwach.
W C#, System.Xml.Linq
i System.Xml
to dwie duże przestrzenie nazw do pracy z XML-em. LINQ do XML (XDocument
, XElement
) jest bardziej nowoczesne i eleganckie—widzieliście jego magię w przykładzie. XmlDocument
daje ci podejście DOM (Document Object Model)—trochę staroszkolne, ale niektórzy przysięgają na jego moc.