Extensions.XPathSelectElements Methode

Definitie

Hiermee selecteert u een verzameling elementen met behulp van een XPath-expressie.

Overloads

Name Description
XPathSelectElements(XNode, String)

Hiermee selecteert u een verzameling elementen met behulp van een XPath-expressie.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Selecteert een verzameling elementen met behulp van een XPath-expressie, waarbij naamruimtevoorvoegsels worden omgezet met behulp van de opgegeven IXmlNamespaceResolver.

Opmerkingen

Hoewel de volgorde van geretourneerde verzamelingen niet is opgegeven in de aanbeveling XML XPath Language 1.0, retourneert deze extensiemethode knooppunten in documentvolgorde.

Houd er rekening mee dat knooppunten worden geretourneerd in documentvolgorde, zelfs wanneer u een omgekeerde as gebruikt, zoals preceding-sibling of ancestor-or-self.

XPathSelectElements(XNode, String)

Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs

Hiermee selecteert u een verzameling elementen met behulp van een XPath-expressie.

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)

Parameters

node
XNode

De XNode expressie waarop de XPath-expressie moet worden geëvalueerd.

expression
String

Een String met een XPath-expressie.

Retouren

Een IEnumerable<T> van XElement de geselecteerde elementen.

Voorbeelden

In het volgende voorbeeld wordt een kleine XML-structuur gemaakt en gebruikt XPathSelectElements om een set elementen te selecteren.

                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

In dit voorbeeld wordt de volgende uitvoer gegenereerd:

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

Opmerkingen

Hoewel de volgorde van geretourneerde verzamelingen niet is opgegeven in de aanbeveling XML XPath Language 1.0, retourneert deze extensiemethode knooppunten in documentvolgorde.

Houd er rekening mee dat knooppunten worden geretourneerd in documentvolgorde, zelfs wanneer u een omgekeerde as gebruikt, zoals preceding-sibling of ancestor-or-self.

Van toepassing op

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs

Selecteert een verzameling elementen met behulp van een XPath-expressie, waarbij naamruimtevoorvoegsels worden omgezet met behulp van de opgegeven 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)

Parameters

node
XNode

De XNode expressie waarop de XPath-expressie moet worden geëvalueerd.

expression
String

Een String met een XPath-expressie.

resolver
IXmlNamespaceResolver

A IXmlNamespaceResolver voor de voorvoegsels van de naamruimte in de XPath-expressie.

Retouren

Een IEnumerable<T> van XElement de geselecteerde elementen.

Voorbeelden

In dit voorbeeld wordt een XML-structuur gemaakt die een naamruimte bevat. Er wordt een XmlReader gebruikt om het XML-document te lezen. Het krijgt dan een XmlNameTable van de XmlReader, en een XmlNamespaceManager van de XmlNameTable. Hierbij wordt de XmlNamespaceManager lijst met elementen gebruikt.

                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

In dit voorbeeld wordt de volgende uitvoer gegenereerd:

<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>

Opmerkingen

U kunt deze methode gebruiken om XPath-expressies te evalueren die naamruimtevoorvoegsels bevatten.

Hoewel de volgorde van geretourneerde verzamelingen niet is opgegeven in de aanbeveling XML XPath Language 1.0, retourneert deze extensiemethode knooppunten in documentvolgorde.

Houd er rekening mee dat knooppunten worden geretourneerd in documentvolgorde, zelfs wanneer u een omgekeerde as gebruikt, zoals preceding-sibling of ancestor-or-self.

Van toepassing op