Extensions.XPathSelectElements Methode

Definition

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

Überlädt

Name Beschreibung
XPathSelectElements(XNode, String)

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

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Wählt eine Auflistung von Elementen mithilfe eines XPath-Ausdrucks aus, wobei Namespacepräfixe mithilfe des angegebenen Präfixes aufgelöst werden IXmlNamespaceResolver.

Hinweise

Obwohl die Reihenfolge der zurückgegebenen 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 Dokumentreihenfolge zurückgegeben werden, auch wenn Sie eine umgekehrte Achse verwenden, z preceding-sibling . B. oder ancestor-or-self.

XPathSelectElements(XNode, String)

Quelle:
XNodeNavigator.cs
Quelle:
XNodeNavigator.cs
Quelle:
XNodeNavigator.cs
Quelle:
XNodeNavigator.cs
Quelle:
XNodeNavigator.cs

Wählt eine Auflistung von Elementen mithilfe eines XPath-Ausdrucks 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 XPath-Ausdruck, für den der XPath-Ausdruck ausgewertet werden soll.

expression
String

A String that contains an XPath expression.

Gibt zurück

Ein Element IEnumerable<T> , das XElement die ausgewählten Elemente enthält.

Beispiele

Im folgenden Beispiel wird eine kleine XML-Struktur erstellt und zum Auswählen einer Gruppe von Elementen verwendet 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 Reihenfolge der zurückgegebenen 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 Dokumentreihenfolge zurückgegeben werden, auch wenn Sie eine umgekehrte Achse verwenden, z preceding-sibling . B. oder ancestor-or-self.

Gilt für:

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Quelle:
XNodeNavigator.cs
Quelle:
XNodeNavigator.cs
Quelle:
XNodeNavigator.cs
Quelle:
XNodeNavigator.cs
Quelle:
XNodeNavigator.cs

Wählt eine Auflistung von Elementen mithilfe eines XPath-Ausdrucks aus, wobei Namespacepräfixe mithilfe des angegebenen Präfixes aufgelöst werden IXmlNamespaceResolver.

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 XPath-Ausdruck, für den der XPath-Ausdruck ausgewertet werden soll.

expression
String

A String that contains an XPath expression.

resolver
IXmlNamespaceResolver

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

Gibt zurück

Ein Element IEnumerable<T> , das XElement 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 wird ein XmlReader Xml-Dokument verwendet. Es wird XmlNameTable dann von der XmlReader, und eine XmlNamespaceManager von der XmlNameTable. Sie verwendet die XmlNamespaceManager Beim Auswählen der Liste der Elemente.

                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

Mit dieser Methode können Sie XPath-Ausdrücke auswerten, die Namespacepräfixe enthalten.

Obwohl die Reihenfolge der zurückgegebenen 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 Dokumentreihenfolge zurückgegeben werden, auch wenn Sie eine umgekehrte Achse verwenden, z preceding-sibling . B. oder ancestor-or-self.

Gilt für: