XML steht für Extensible Markup Language und ist ein weit verbreitetes Datenformat, das für die strukturierte Speicherung von Informationen verwendet wird, sei es für Adressbücher, Wetterdaten oder andere Datensammlungen. In dieser Anleitung zeige ich dir, wie du mit LINQ (Language Integrated Query) XML-Dateien in C# effektiv verarbeiten kannst. Wir werden uns Schritt für Schritt der Verarbeitung, Sortierung und Filterung von XML-Daten widmen.
Wichtigste Erkenntnisse
- XML ist ideal zur strukturierten Speicherung von Daten.
- LINQ ermöglicht eine effiziente Abfrage und Manipulation von XML-Daten.
- Du kannst mit LINQ nach spezifischen Kriterien filtern und die Ergebnisse sortieren.
- Die Kombination aus XML und LINQ verbessert die Lesbarkeit und Handhabung von Daten in C#.
XML-Daten einlesen und vorbereiten
Um mit XML-Daten zu arbeiten, benötigst du zuerst die entsprechenden Namespaces. Diese sind entscheidend für das Einlesen und die Verarbeitung der XML-Daten.
Zuerst fügen wir die erforderlichen Namespaces hinzu:

Die zentrale Klasse, die wir verwenden werden, ist die XDocument. Sie stellt ein XML-Dokument dar, mit dem wir unsere XML-Daten einfach verarbeiten können. In unserem Beispiel werden wir eine Instanz dieser Klasse erstellen, um ein XML-Dokument zu initiieren.
Instanziierung des XDocument
Im nächsten Schritt erstellst du eine XDocument-Instanz, die deine XML-Daten liest. Wir bezeichnen diese Instanz als plzxdoc.
Mit dem Parse-Befehl füllst du das Objekt mit deinem XML-String. Dieser Schritt ist wesentlich, da er es dir ermöglicht, die XML-Daten in deiner variable plzxdoc zu speichern und zu manipulieren.
LINQ-Abfragen auf XML-Daten durchführen
Nachdem du dein XML-Dokument geladen hast, erfolgt die wichtige Abfrage. LINQ ermöglicht es dir, auf einfache Weise bestimmte Daten herauszufiltern. Für unser Beispiel verwenden wir LINQ to XML, um alle Postleitzahlen zu filtern.
LINQ-Abfrage vorbereiten
Diese Abfrage durchläuft alle Elemente des XML-Dokuments, die eine Postleitzahl repräsentieren, und filtert sie nach dem Ort „Berlin“. Als Ergebnis erhältst du nur die Postleitzahlen, die dieser Bedingung entsprechen.
Sortierung der Ergebnisse
Mit LINQ kannst du darüber hinaus die gefilterten Ergebnisse sortieren.

Hierbei wird die Postleitzahl absteigend sortiert, sodass die höheren Postleitzahlen zuerst angezeigt werden.
Ausgabe der Ergebnisse
Jetzt, da du die gefilterten und sortierten Postleitzahlen hast, ist es an der Zeit, diese auf der Konsole oder in einer Benutzeroberfläche auszugeben.
ForEach-Schleife zur Ausgabe
Mit dieser Schleife greifst du auf die Werte des Stadtteils sowie der Postleitzahl zu und gibst sie formatiert auf der Konsole aus.
Zusammenfassung – LINQ-Programmierung mit XML-Daten in C
In dieser Anleitung hast du gelernt, wie du XML-Daten in C# mit LINQ einlesen, filtern und ausgeben kannst. Zu Beginn hast du die Grundlagen von XML und LINQ kennengelernt und die entsprechenden Namespaces eingebunden. Anschließend hast du eine XDocument-Instanz erstellt und eine LINQ-Abfrage zur Verarbeitung der Daten verwendet. Schlussendlich hast du die gefilterten Daten sortiert und diese auf der Konsole ausgegeben.
Häufig gestellte Fragen
Was ist XML?XML steht für Extensible Markup Language und wird verwendet, um Daten strukturiert zu speichern.
Was bedeutet LINQ?LINQ ist eine Sprache zur Integration von Abfragen in .NET, die es ermöglicht, Daten in einer deklarativen Weise abzufragen und zu manipulieren.
Wie filtere ich XML-Daten mit LINQ?Du kannst XML-Daten mit einer LINQ-Abfrage filtern, indem du Bedingungen für die gewünschten Elemente und Attribute festlegst, z.B. where (string)plz.Element("Ort") == "Berlin".
Wie sortiere ich Ergebnisse mit LINQ?Ergebnisse können mit der OrderBy- oder OrderByDescending-Methode sortiert werden, indem du die gewünschten Eigenschaften angibst, nach denen sortiert werden soll.