Übersicht über LINQ to XML-Achsen
Nachdem Sie eine XML-Struktur erstellt oder ein XML-Dokument in eine XML-Struktur geladen haben, können Sie durch Abfragen der XML-Struktur nach Elementen und Attributen suchen und deren Werte abrufen. Das Abrufen von Auflistungen erfolgt über die Achsenmethoden, auch kurz Achsen genannt. Einige der Achsen sind Methoden in der XElement-Klasse und in der XDocument-Klasse, die IEnumerable<T>-Auflistungen zurückgeben. Bei einigen Achsen handelt es sich um Erweiterungsmethoden in der Extensions-Klasse. Die Achsen, die als Erweiterungsmethode implementiert werden, arbeiten mit Auflistungen und geben Auflistungen zurück.
Wie unter Übersicht über die XElement-Klasse beschrieben wird, stellt ein XElement-Objekt einen einzelnen Elementknoten dar. Der Inhalt eines Elements kann komplex sein (dies wird mitunter als strukturierter Inhalt bezeichnet), es kann sich bei dem Element aber auch um ein einfaches Element handeln. Ein einfaches Element kann leer sein oder einen Wert enthalten. Wenn der Knoten strukturierten Inhalt enthält, können Sie mit den verschiedenen Achsenmethoden Enumerationen der Nachfolgerelemente abrufen. Die am häufigsten verwendeten Achsenmethoden sind Elements und Descendants.
Neben den Achsenmethoden, die Auflistungen zurückgeben, gibt es zwei weitere Methoden, die häufig in LINQ to XML-Abfragen eingesetzt werden. Die Element-Methode gibt ein einzelnes XElement zurück. Die Attribute-Methode gibt ein einzelnes XAttribute zurück.
Für viele Zwecke sind LINQ-Abfragen die bessere Variante, eine Struktur zu prüfen, Daten aus einer Struktur zu extrahieren und die Daten zu transformieren. LINQ-Abfragen arbeiten mit Objekten, die IEnumerable<T> implementieren, und die IEnumerable<T>-Achsen geben XElement von IEnumerable<T>-Sammlungen und von XAttribute-Sammlungen zurück. Diese Auflistungen benötigen Sie zum Ausführen Ihrer Abfragen.
Neben den Achsenmethoden, die Auflistungen von Elementen und Attributen abrufen, gibt es auch Achsenmethoden, die es Ihnen erlauben, die Struktur sehr genau zu durchlaufen. So können Sie z. B. anstelle von Elementen und Attributen auch mit den Knoten der Struktur arbeiten. Knoten bieten im Vergleich zu Elementen und Attributen eine höhere Detailgenauigkeit (Granularität). Beim Arbeiten mit Knoten können Sie XML-Kommentare, -Textknoten, -Verarbeitungsanweisungen und anderes untersuchen. Diese Funktionalität ist z. B. für Entwickler wichtig, die ein Textverarbeitungsprogramm schreiben und Dokumente als XML speichern möchten. Die Mehrheit der XML-Programmierer hat aber vor allem mit Elementen und Attributen sowie deren Werten zu tun.
Methoden zum Abrufen einer Auflistung von Elementen
Im Folgenden finden Sie eine Zusammenfassung der Methoden der XElement-Klasse (bzw. ihrer Basisklassen), die Sie für XElement mit dem Ziel aufrufen, eine Auflistung von Elementen zurückzugeben.
Methode | BESCHREIBUNG |
---|---|
XNode.Ancestors | Gibt eine IEnumerable<T> von XElement der Vorgänger dieses Elements zurück. Eine Überladung gibt eine IEnumerable<T> von XElement der Vorgänger mit dem angegebenen XName zurück. |
XContainer.Descendants | Gibt eine IEnumerable<T> von XElement der Nachfolger dieses Elements zurück. Eine Überladung gibt eine IEnumerable<T> von XElement der Nachfolger mit dem angegebenen XName zurück. |
XContainer.Elements | Gibt eine IEnumerable<T> von XElement der untergeordneten Elemente dieses Elements zurück. Eine Überladung gibt eine IEnumerable<T> von XElement der untergeordneten Elemente mit dem angegebenen XName zurück. |
XNode.ElementsAfterSelf | Gibt eine IEnumerable<T> von XElement der Elemente zurück, die diesem Element folgen. Eine Überladung gibt eine IEnumerable<T> von XElement der Elemente mit dem angegebenen XName zurück, die diesem Element folgen. |
XNode.ElementsBeforeSelf | Gibt eine IEnumerable<T> von XElement der Elemente zurück, die sich vor diesem Element befinden. Eine Überladung gibt eine IEnumerable<T> von XElement der Elemente mit dem angegebenen XName zurück, die sich vor diesem Element befinden. |
XElement.AncestorsAndSelf | Gibt eine IEnumerable<T> von XElement dieses Elements und dessen Vorgänger zurück. Eine Überladung gibt eine IEnumerable<T> von XElement der Elemente mit dem angegebenen XName zurück. |
XElement.DescendantsAndSelf | Gibt eine IEnumerable<T> von XElement dieses Elements und dessen Nachfolger zurück. Eine Überladung gibt eine IEnumerable<T> von XElement der Elemente mit dem angegebenen XName zurück. |
Methode zum Abrufen eines einzelnen Elements
Die folgende Methode ruft ein einzelnes untergeordnetes Element aus einem XElement-Objekt ab.
Methode | BESCHREIBUNG |
---|---|
XContainer.Element | Gibt das erste untergeordnete XElement-Objekt zurück, das den angegebenen XName hat. |
Methoden zum Abrufen einer Auflistung von Attributen
Die folgende Methode ruft Attribute aus einem XElement-Objekt ab.
Methode | BESCHREIBUNG |
---|---|
XElement.Attributes | Gibt eine IEnumerable<T> von XAttribute aller Attribute zurück. |
Methode zum Abrufen eines einzelnen Attributs
Die folgende Methode ruft ein einzelnes Attribut aus einem XElement-Objekt ab.
Methode | BESCHREIBUNG |
---|---|
XElement.Attribute | Gibt das XAttribute zurück, das den angegebenen XName hat. |