Process XML Documents with LINQ to XML
Obwohl andere Formate wie beispielsweise JSON immer mehr Verbreitung gewinnen, bleibt es natürlich nötig, XML verarbeiten zu können – mit diesem Beitrag möchte ich zeigen, wie XML-Dokumente mit LINQ to XML besonders einfach verarbeitet werden können. LINQ selbst werde ich separat noch ausführlich behandeln.
Als Ausgangslage für unser Beispiel soll folgendes XML-Dokument dienen:
Als Ausgangslage für unser Beispiel soll folgendes XML-Dokument dienen:
Persons.xml
Wir möchten daraus eine (generische) Liste von 010203040506070809101112131415161718
<personList> <person id="1"> <firstName>Anders</firstName> <lastName>Hejlsberg</lastName> </person> <person id="2"> <firstName>Bjarne</firstName> <lastName>Stroustrup</lastName> </person> <person id="3"> <firstName>James</firstName> <lastName>Gosling</lastName> </person> <person id="4"> <firstName>Rasmus</firstName> <lastName>Lerdorf</lastName> </person></personList>
Person
-Objekten erzeugen. Die Klasse soll auch gleich die Methode zur XML-Verarbeitung erhalten, welche mit LINQ to XML nun besonders einfach umzusetzen ist:
Person.cs
Das Vorgehen dürfte eigentlich weitestgehend selbsterklärend sein. Obwohl selbstverständlich mehr Funktionalität zur Verfügung steht, dürften mit diesem kleinen Beispiel bereits die wichtigsten Fälle abgedeckt sein. Weitere Informationen finden sich ausgehend von 010203040506070809101112131415161718192021222324252627
public class Person { public int PersonID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public static List<Person> ParseXML(string xml) { return XElement.Parse(xml) .Descendants("person") .Select(p => new Person() { PersonID = Int32.Parse(p.Attribute("id").Value), FirstName = p.Element("firstName").Value, LastName = p.Element("lastName").Value }).ToList(); }}
XDocument
im MSDN.
Project links
-
BitStadt – Stadtportal
Berlin · Hamburg · Amsterdam -
CCC – Fahrplan
Schedules for the CCCongress
Categories / Archive | Übersicht
- PHP functions in C# (136)
- Dictionary (257)
Tags
.NET · ADO.NET · Work · ASP.NET MVC · Blog · C# · Generics · Society · Computer Science · Java · LINQ · Logic · Mathematics · Network · PHP · Project · Security · Software development · Studies · Technics · Theory · Web design · WPF