Teilen über


Extensions.XPathSelectElements Methode

Definition

Wählt mithilfe eines XPath-Ausdrucks eine Auflistung von Elementen aus.

Überlädt

XPathSelectElements(XNode, String)

Wählt mithilfe eines XPath-Ausdrucks eine Auflistung von Elementen aus.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Wählt mithilfe eines XPath-Ausdrucks eine Auflistung von Elementen aus und löst Namespacepräfixe mit dem angegebenen IXmlNamespaceResolver auf.

Hinweise

Obwohl die Sortierung zurückgegebener Auflistungen in der XML XPath Language 1.0-Empfehlung nicht angegeben ist, gibt diese Erweiterungsmethode Knoten in der Dokumentreihenfolge zurück.

Beachten Sie, dass Knoten in der Dokumentreihenfolge zurückgegeben werden, auch wenn Sie eine Umgekehrtachse verwenden, z preceding-sibling . B. oder ancestor-or-self.

XPathSelectElements(XNode, String)

Wählt mithilfe eines XPath-Ausdrucks eine Auflistung von Elementen aus.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ XPathSelectElements(System::Xml::Linq::XNode ^ node, System::String ^ expression);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements (this System.Xml.Linq.XNode node, string expression);
static member XPathSelectElements : System.Xml.Linq.XNode * string -> seq<System.Xml.Linq.XElement>
<Extension()>
Public Function XPathSelectElements (node As XNode, expression As String) As IEnumerable(Of XElement)

Parameter

node
XNode

Der XNode, in dem der XPath-Ausdruck ausgewertet wird.

expression
String

Ein String, der einen XPath-Ausdruck enthält.

Gibt zurück

IEnumerable<XElement>

Ein IEnumerable<T> vom Typ XElement, die die ausgewählten Elemente enthält.

Beispiele

Das folgende Beispiel erstellt eine kleine XML-Struktur und verwendet zum Auswählen eines Satzes von Elementen XPathSelectElements.

                XElement root = new XElement("Root",  
    new XElement("Child1", 1),  
    new XElement("Child1", 2),  
    new XElement("Child1", 3),  
    new XElement("Child2", 4),  
    new XElement("Child2", 5),  
    new XElement("Child2", 6)  
);  
IEnumerable<XElement> list = root.XPathSelectElements("./Child2");  
foreach (XElement el in list)  
    Console.WriteLine(el);  
                Dim root As XElement = _  
    <Root>  
        <Child1>1</Child1>  
        <Child1>2</Child1>  
        <Child1>3</Child1>  
        <Child2>4</Child2>  
        <Child2>5</Child2>  
        <Child2>6</Child2>  
    </Root>  
Dim list As IEnumerable(Of XElement) = root.XPathSelectElements("./Child2")  
For Each el As XElement In list  
    Console.WriteLine(el)  
Next  

Dieses Beispiel erzeugt die folgende Ausgabe:

<Child2>4</Child2>  
<Child2>5</Child2>  
<Child2>6</Child2>  

Hinweise

Obwohl die Sortierung zurückgegebener Auflistungen in der XML XPath Language 1.0-Empfehlung nicht angegeben ist, gibt diese Erweiterungsmethode Knoten in der Dokumentreihenfolge zurück.

Beachten Sie, dass Knoten in der Dokumentreihenfolge zurückgegeben werden, auch wenn Sie eine Umgekehrtachse verwenden, z preceding-sibling . B. oder ancestor-or-self.

Gilt für

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Wählt mithilfe eines XPath-Ausdrucks eine Auflistung von Elementen aus und löst Namespacepräfixe mit dem angegebenen IXmlNamespaceResolver auf.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ XPathSelectElements(System::Xml::Linq::XNode ^ node, System::String ^ expression, System::Xml::IXmlNamespaceResolver ^ resolver);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements (this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver? resolver);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements (this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver resolver);
static member XPathSelectElements : System.Xml.Linq.XNode * string * System.Xml.IXmlNamespaceResolver -> seq<System.Xml.Linq.XElement>
<Extension()>
Public Function XPathSelectElements (node As XNode, expression As String, resolver As IXmlNamespaceResolver) As IEnumerable(Of XElement)

Parameter

node
XNode

Der XNode, in dem der XPath-Ausdruck ausgewertet wird.

expression
String

Ein String, der einen XPath-Ausdruck enthält.

resolver
IXmlNamespaceResolver

Ein IXmlNamespaceResolver für die Namespacepräfixe im XPath-Ausdruck.

Gibt zurück

IEnumerable<XElement>

Ein IEnumerable<T> vom Typ XElement, die die ausgewählten Elemente enthält.

Beispiele

In diesem Beispiel wird eine XML-Struktur erstellt, die einen Namespace enthält. Zum Lesen des XML-Dokuments kommt dabei ein XmlReader zum Einsatz. Anschließend werden eine XmlNameTable aus dem XmlReader und ein XmlNamespaceManager aus der XmlNameTable abgerufen. Beim Auswählen der Liste der Elemente wird die XmlNamespaceManager Liste der Elemente verwendet.

                string markup = @"  
<aw:Root xmlns:aw='http://www.adventure-works.com'>  
    <aw:Child1>child one data 1</aw:Child1>  
    <aw:Child1>child one data 2</aw:Child1>  
    <aw:Child1>child one data 3</aw:Child1>  
    <aw:Child2>child two data 4</aw:Child2>  
    <aw:Child2>child two data 5</aw:Child2>  
    <aw:Child2>child two data 6</aw:Child2>  
</aw:Root>";  
XmlReader reader = XmlReader.Create(new StringReader(markup));  
XElement root = XElement.Load(reader);  
XmlNameTable nameTable = reader.NameTable;  
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(nameTable);  
namespaceManager.AddNamespace("aw", "http://www.adventure-works.com");  
IEnumerable<XElement> elements = root.XPathSelectElements("./aw:Child1", namespaceManager);  
foreach (XElement el in elements)  
    Console.WriteLine(el);  
                Dim markup As XElement = _  
<aw:Root xmlns:aw="http://www.adventure-works.com">  
    <aw:Child1>child one data 1</aw:Child1>  
    <aw:Child1>child one data 2</aw:Child1>  
    <aw:Child1>child one data 3</aw:Child1>  
    <aw:Child2>child two data 4</aw:Child2>  
    <aw:Child2>child two data 5</aw:Child2>  
    <aw:Child2>child two data 6</aw:Child2>  
</aw:Root>  
Dim reader As XmlReader = markup.CreateReader  
Dim nameTable As XmlNameTable = reader.NameTable  
Dim namespaceManager As XmlNamespaceManager = New XmlNamespaceManager(nameTable)  
namespaceManager.AddNamespace("aw", "http://www.adventure-works.com")  
Dim elements As IEnumerable(Of XElement) = markup.XPathSelectElements("./aw:Child1", namespaceManager)  
For Each el As XElement In elements  
    Console.WriteLine(el)  
Next  

Dieses Beispiel erzeugt die folgende Ausgabe:

<aw:Child1 xmlns:aw="http://www.adventure-works.com">child one data 1</aw:Child1>  
<aw:Child1 xmlns:aw="http://www.adventure-works.com">child one data 2</aw:Child1>  
<aw:Child1 xmlns:aw="http://www.adventure-works.com">child one data 3</aw:Child1>  

Hinweise

Sie können diese Methode verwenden, um XPath-Ausdrücke auszuwerten, die Namespacepräfixe enthalten.

Obwohl die Sortierung zurückgegebener Auflistungen in der XML XPath Language 1.0-Empfehlung nicht angegeben ist, gibt diese Erweiterungsmethode Knoten in der Dokumentreihenfolge zurück.

Beachten Sie, dass Knoten in der Dokumentreihenfolge zurückgegeben werden, auch wenn Sie eine Umgekehrtachse verwenden, z preceding-sibling . B. oder ancestor-or-self.

Gilt für