Freigeben über


LINQ to XML für XPath-Benutzer

Die Themen in diesem Abschnitt demonstrieren eine Reihe von XPath-Ausdrücken und deren LINQ to XML-Entsprechungen. 

Alle Beispiele nutzen die XPath-Funktionalität in LINQ to XML, die durch die Erweiterungsmethoden in Extensions verfügbar gemacht werden. Die Beispiele führen sowohl den XPath-Ausdruck als auch den LINQ to XML-Ausdruck aus. Anschließend vergleichen sie die Ergebnisse der beiden Abfragen und prüfen dadurch, ob der XPath-Ausdruck funktional mit der LINQ to XML-Abfrage identisch ist. Da beide Abfragearten Knoten aus derselben XML-Struktur zurückgeben, erfolgt der Vergleich der Abfrageergebnisse mittels referenzieller Identität.

In diesem Abschnitt

Thema

Beschreibung

Vergleich von XPath mit LINQ to XML

Bietet eine Übersicht über die Gemeinsamkeiten und Unterschiede von XPath und LINQ to XML.

Vorgehensweise: Ermitteln eines untergeordneten Elements (XPath-LINQ to XML)

Vergleicht die XPath-Achse für untergeordnete Elemente mit der LINQ to XML Element-Methode. 

Der zugehörige XPath-Ausdruck ist "DeliveryNotes".

Vorgehensweise: Ermitteln einer Liste untergeordneter Elemente (XPath-LINQ to XML)

Vergleicht die XPath-Achse für untergeordnete Elemente mit der LINQ to XML Elements-Achse.

Der zugehörige XPath-Ausdruck ist "./*".

Vorgehensweise: Ermitteln des Stammelements (XPath-LINQ to XML)

Vergleicht, wie Sie mit XPath und mit LINQ to XML das Stammelement abrufen können.

Der zugehörige XPath-Ausdruck ist "/PurchaseOrders".

Vorgehensweise: Ermitteln von Nachfolgerelementen (XPath-LINQ to XML)

Vergleicht, wie Sie mit XPath und mit LINQ to XML die Nachfolgerelemente mit einem bestimmten Namen abrufen können.

Der zugehörige XPath-Ausdruck ist "//Name".

Vorgehensweise: Filtern nach einem Attribut (XPath-LINQ to XML)

Vergleicht, wie Sie mit XPath und mit LINQ to XML die Nachfolgerelemente mit einem bestimmten Namen und mit einem Attribut mit einem bestimmten Wert abrufen können.

Der zugehörige XPath-Ausdruck ist ".//Address[@Type='Shipping']".

Vorgehensweise: Ermitteln verwandter Elemente (XPath-LINQ to XML)

Vergleicht, wie Sie mit XPath und mit LINQ to XML ein Element abrufen können, indem nach einem Attribut ausgewählt wird, auf das der Wert eines anderen Elements verweist.

Der zugehörige XPath-Ausdruck ist ".//Customer[@CustomerID=/Root/Orders/Order[12]/CustomerID]".

Vorgehensweise: Ermitteln von Elementen in einem Namespace (XPath-LINQ to XML)

Vergleicht die Verwendung der XPath-XmlNamespaceManager-Klasse mit der LINQ to XML Namespace-Eigenschaft der XName-Klasse beim Arbeiten mit XML-Namespaces.

Der zugehörige XPath-Ausdruck ist "./aw:*".

Vorgehensweise: Ermitteln von vorhergehenden nebengeordneten Elementen (XPath-LINQ to XML)

Vergleicht die XPath-preceding-sibling-Achse mit der LINQ to XML untergeordneten XNode.ElementsBeforeSelf-Achse. 

Der zugehörige XPath-Ausdruck ist "preceding-sibling::*".

Vorgehensweise: Ermitteln von Nachfolgern untergeordneter Elemente (XPath-LINQ to XML)

Vergleicht, wie Sie mit XPath und mit LINQ to XML die Nachfolgerelemente eines untergeordneten Elements mit einem bestimmten Namen abrufen können.

Der zugehörige XPath-Ausdruck ist "./Paragraph//Text/text()".

Vorgehensweise: Ermitteln einer Union zweier Speicherortpfade (XPath-LINQ to XML)

Vergleicht die Verwendung des Union-Operators |in XPath mit dem Concat``1-Standardabfrageoperator in LINQ to XML.

Der zugehörige XPath-Ausdruck ist "//Category|//Price".

Vorgehensweise: Ermitteln von nebengeordneten Knoten (XPath-LINQ to XML)

Vergleicht, wie Sie mit XPath und mit LINQ to XML nach allen nebengeordneten Knoten eines Knotens suchen können, die einen bestimmten Namen haben.

Der zugehörige XPath-Ausdruck ist "../Book".

Vorgehensweise: Ermitteln des Attributs des übergeordneten Elements (XPath-LINQ to XML)

Vergleicht, wie Sie mit XPath und mit LINQ to XML zum übergeordneten Element navigieren und nach einem zugeordneten Attribut suchen können.

Der zugehörige XPath-Ausdruck ist "../@id".

Vorgehensweise: Ermitteln von Attributen nebengeordneter Knoten mit einem bestimmten Namen (XPath-LINQ to XML)

Vergleicht, wie Sie mit XPath und mit LINQ to XML nach bestimmten Attributen der nebengeordneten Knoten des Kontextknotens suchen können.

Der zugehörige XPath-Ausdruck ist "../Book/@id".

Vorgehensweise: Ermitteln von Elementen mit einem bestimmten Attribut (XPath-LINQ to XML)

Vergleicht, wie Sie mit XPath und mit LINQ to XML nach allen Elementen suchen können, die ein bestimmtes Attribut enthalten.

Der zugehörige XPath-Ausdruck ist "./*[@Select]".

Vorgehensweise: Ermitteln untergeordneter Elemente anhand der Position (XPath-LINQ to XML)

Vergleicht, wie Sie mit XPath und mit LINQ to XML nach einem Element anhand seiner relativen Position suchen können.

Der zugehörige XPath-Ausdruck ist "Test[position() >= 2 and position() <= 4]".

Vorgehensweise: Ermitteln des unmittelbar vorhergehenden nebengeordneten Knotens (XPath-LINQ to XML)

Vergleicht, wie Sie mit XPath und mit LINQ to XML nach dem unmittelbar vorgehenden nebengeordneten Knoten eines Knotens suchen können.

Der zugehörige XPath-Ausdruck ist "preceding-sibling::*[1]".

Siehe auch

Referenz

System.Xml.XPath

Konzepte

Abfragen von XML-Strukturen

Verarbeiten von XML-Daten mithilfe des XPath-Datenmodells