LINQ to XML für XPath-Benutzer (C#)LINQ to XML for XPath Users (C#)

Die Themen in diesem Abschnitt demonstrieren eine Reihe von XPath-Ausdrücken und deren LINQ to XML-Entsprechungen.This set of topics show a number of XPath expressions and their LINQ to XML equivalents.

Alle Beispiele nutzen die XPath-Funktionalität in LINQ to XML, die durch die Erweiterungsmethoden in System.Xml.XPath.Extensions verfügbar gemacht werden.All of the examples use the XPath functionality in LINQ to XML that is made available by the extension methods in System.Xml.XPath.Extensions. Die Beispiele führen sowohl den XPath-Ausdruck als auch den LINQ to XML-Ausdruck aus.The examples execute both the XPath expression and the LINQ to XML expression. 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.Each example then compares the results of both queries, validating that the XPath expression is functionally equivalent to the LINQ to XML query. Da beide Abfragearten Knoten aus derselben XML-Struktur zurückgeben, erfolgt der Vergleich der Abfrageergebnisse mittels referenzieller Identität.As both types of queries return nodes from the same XML tree, the query result comparison is made using referential identity.

In diesem AbschnittIn This Section

ThemaTopic BeschreibungDescription
Vergleich zwischen XPath und LINQ to XMLComparison of XPath and LINQ to XML Bietet eine Übersicht über die Gemeinsamkeiten und Unterschiede von XPath und LINQ to XML.Provides an overview of the similarities and differences between XPath and LINQ to XML.
Vorgehensweise: Suchen eines untergeordneten Elements (XPath-LINQ to XML) (C#)How to: Find a Child Element (XPath-LINQ to XML) (C#) Vergleicht die XPath-Achse für untergeordnete Elemente mit der LINQ to XML Element-Methode.Compares the XPath child element axis to the LINQ to XML Element method.

Der zugehörige XPath-Ausdruck ist "DeliveryNotes".The associated XPath expression is:"DeliveryNotes".
Vorgehensweise: Suchen einer Liste untergeordneter Elemente (XPath-LINQ to XML) (C#)How to: Find a List of Child Elements (XPath-LINQ to XML) (C#) Vergleicht die XPath-Achse für untergeordnete Elemente mit der LINQ to XML Elements-Achse.Compares the XPath child elements axis to the LINQ to XML Elements axis.

Der zugehörige XPath-Ausdruck ist "./*".The associated XPath expression is:"./*"
Vorgehensweise: Suchen des Stammelements (XPath-LINQ to XML) (C#)How to: Find the Root Element (XPath-LINQ to XML) (C#) Vergleicht, wie Sie mit XPath und mit LINQ to XML das Stammelement abrufen können.Compares how to get the root element with XPath and LINQ to XML.

Der zugehörige XPath-Ausdruck ist "/PurchaseOrders".The associated XPath expression is:"/PurchaseOrders"
Vorgehensweise: Suchen von Nachfolgerelementen (XPath-LINQ to XML) (C#)How to: Find Descendant Elements (XPath-LINQ to XML) (C#) Vergleicht, wie Sie mit XPath und mit LINQ to XML die Nachfolgerelemente mit einem bestimmten Namen abrufen können.Compares how to get the descendant elements with a particular name with XPath and LINQ to XML.

Der zugehörige XPath-Ausdruck ist "//Name".The associated XPath expression is:"//Name"
Vorgehensweise: Filtern nach einem Attribut (XPath-LINQ to XML) (C#)How to: Filter on an Attribute (XPath-LINQ to XML) (C#) 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.Compares how to get the descendant elements with a specified name, and with an attribute with a specified value with XPath and LINQ to XML.

Der zugehörige XPath-Ausdruck ist ".//Address[@Type='Shipping']".The associated XPath expression is:".//Address[@Type='Shipping']"
Vorgehensweise: Suchen nach verwandten Elementen (XPath-LINQ to XML) (C#)How to: Find Related Elements (XPath-LINQ to XML) (C#) 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.Compares how to get an element selecting on an attribute that is referred to by the value of another element with XPath and LINQ to XML.

Der zugehörige XPath-Ausdruck ist ".//Customer[@CustomerID=/Root/Orders/Order[12]/CustomerID]".The associated XPath expression is:".//Customer[@CustomerID=/Root/Orders/Order[12]/CustomerID]"
Vorgehensweise: Suchen nach Elementen in einem Namespace (XPath-LINQ to XML) (C#)How to: Find Elements in a Namespace (XPath-LINQ to XML) (C#) Vergleicht die Verwendung der XPath-XmlNamespaceManager-Klasse mit der LINQ to XMLNamespace-Eigenschaft der XName-Klasse beim Arbeiten mit XML-Namespaces.Compares the use of the XPath XmlNamespaceManager class with the LINQ to XML Namespace property of the XName class for working with XML namespaces.

Der zugehörige XPath-Ausdruck ist "./aw:*".The associated XPath expression is:"./aw:*"
Vorgehensweise: Suchen nach Nachfolgern von untergeordneten Elementen (XPath-LINQ to XML) (C#)How to: Find Preceding Siblings (XPath-LINQ to XML) (C#) Vergleicht die XPath-preceding-sibling-Achse mit der LINQ to XML untergeordneten XNode.ElementsBeforeSelf-Achse.Compares the XPath preceding-sibling axis to the LINQ to XML child XNode.ElementsBeforeSelf axis.

Der zugehörige XPath-Ausdruck ist "preceding-sibling::*".The associated XPath expression is:"preceding-sibling::*"
Vorgehensweise: Suchen nach Nachfolgern von untergeordneten Elementen (XPath-LINQ to XML) (C#)How to: Find Descendants of a Child Element (XPath-LINQ to XML) (C#) Vergleicht, wie Sie mit XPath und mit LINQ to XML die Nachfolgerelemente eines untergeordneten Elements mit einem bestimmten Namen abrufen können.Compares how to get the descendant elements of a child element with a particular name with XPath and LINQ to XML.

Der zugehörige XPath-Ausdruck ist "./Paragraph//Text/text()".The associated XPath expression is:"./Paragraph//Text/text()"
Vorgehensweise: Suchen nach einer Union von zwei Speicherorten (XPath-LINQ to XML) (C#)How to: Find a Union of Two Location Paths (XPath-LINQ to XML) (C#) Vergleicht die Verwendung des Union|-Operators Concat in XPath mit dem LINQ to XML-Standardabfrageoperator in .Compares the use of the union operator, |, in XPath with the Concat standard query operator in LINQ to XML.

Der zugehörige XPath-Ausdruck ist "//Category|//Price".The associated XPath expression is:"//Category|//Price"
Vorgehensweise: Suchen nach nebengeordneten Knoten (XPath-LINQ to XML) (C#)How to: Find Sibling Nodes (XPath-LINQ to XML) (C#) Vergleicht, wie Sie mit XPath und mit LINQ to XML nach allen nebengeordneten Knoten eines Knotens suchen können, die einen bestimmten Namen haben.Compares how to find all siblings of a node that have a specific name with XPath and LINQ to XML.

Der zugehörige XPath-Ausdruck ist "../Book".The associated XPath expression is:"../Book"
Vorgehensweise: Suchen eines Attributs eines übergeordneten Elements (XPath-LINQ to XML) (C#)How to: Find an Attribute of the Parent (XPath-LINQ to XML) (C#) Vergleicht, wie Sie mit XPath und mit LINQ to XML zum übergeordneten Element navigieren und nach einem zugeordneten Attribut suchen können.Compares how to navigate to the parent element and find an associated attribute using XPath and LINQ to XML.

Der zugehörige XPath-Ausdruck ist "../@id".The associated XPath expression is:"../@id"
Vorgehensweise: Suchen nach Attributen von nebengeordneten Elementen mit einem bestimmten Namen (XPath-LINQ to XML) (C#)How to: Find Attributes of Siblings with a Specific Name (XPath-LINQ to XML) (C#) Vergleicht, wie Sie mit XPath und mit LINQ to XML nach bestimmten Attributen der nebengeordneten Knoten des Kontextknotens suchen können.Compares how to find specific attributes of the siblings of the context node with XPath and LINQ to XML.

Der zugehörige XPath-Ausdruck ist "``../Book/@id``".The associated XPath expression is:"``../Book/@id``"
Vorgehensweise: Suchen nach Elementen mit bestimmten Attributen (XPath-LINQ to XML) (C#)How to: Find Elements with a Specific Attribute (XPath-LINQ to XML) (C#) Vergleicht, wie Sie mit XPath und mit LINQ to XML nach allen Elementen suchen können, die ein bestimmtes Attribut enthalten.Compares how to find al elements containing a specific attribute using XPath and LINQ to XML.

Der zugehörige XPath-Ausdruck ist "./*[@Select]".The associated XPath expression is:"./*[@Select]"
Vorgehensweise: Suchen nach untergeordneten Elementen anhand der Position (XPath-LINQ to XML) (C#)How to: Find Child Elements Based on Position (XPath-LINQ to XML) (C#) Vergleicht, wie Sie mit XPath und mit LINQ to XML nach einem Element anhand seiner relativen Position suchen können.Compares how to find an element based on its relative position using XPath and LINQ to XML.

Der zugehörige XPath-Ausdruck ist "Test[position() >= 2 and position() <= 4]".The associated XPath expression is:"Test[position() >= 2 and position() <= 4]"
Vorgehensweise: Suchen nach dem unmittelbar vorhergehenden nebengeordneten Knoten (XPath-LINQ to XML) (C#)How to: Find the Immediate Preceding Sibling (XPath-LINQ to XML) (C#) Vergleicht, wie Sie mit XPath und mit LINQ to XML nach dem unmittelbar vorgehenden nebengeordneten Knoten eines Knotens suchen können.Compares how to find the immediate preceding sibling of a node using XPath and LINQ to XML.

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

Siehe auchSee Also

System.Xml.XPath
Querying XML Trees (C#) (Abfragen von XML-Strukturen (C#))Querying XML Trees (C#)
Verarbeiten von XML-Daten mithilfe des XPath-DatenmodellsProcess XML Data Using the XPath Data Model