Partage via


Extensions.XPathSelectElements Méthode

Définition

Sélectionne une collection d'éléments à l'aide d'une expression XPath.

Surcharges

XPathSelectElements(XNode, String)

Sélectionne une collection d'éléments à l'aide d'une expression XPath.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Sélectionne une collection d'éléments à l'aide d'une expression XPath, en résolvant les préfixes d'espace de noms à l'aide du IXmlNamespaceResolver spécifié.

Remarques

Bien que l’ordre des collections retournées ne soit pas spécifié dans la recommandation XML XPath Language 1.0, cette méthode d’extension retourne des nœuds dans l’ordre du document.

Notez que les nœuds sont retournés dans l’ordre des documents, même lorsque vous utilisez un axe inverse, tel que preceding-sibling ou ancestor-or-self.

XPathSelectElements(XNode, String)

Sélectionne une collection d'éléments à l'aide d'une expression XPath.

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)

Paramètres

node
XNode

XNode sur lequel évaluer l'expression XPath.

expression
String

String qui contient une expression XPath.

Retours

IEnumerable<XElement>

IEnumerable<T> de XElement qui contient les éléments sélectionnés.

Exemples

L'exemple suivant crée une petite arborescence XML et utilise XPathSelectElements pour sélectionner un ensemble d'éléments.

                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  

Cet exemple produit la sortie suivante :

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

Remarques

Bien que l’ordre des collections retournées ne soit pas spécifié dans la recommandation XML XPath Language 1.0, cette méthode d’extension retourne des nœuds dans l’ordre du document.

Notez que les nœuds sont retournés dans l’ordre des documents, même lorsque vous utilisez un axe inverse, tel que preceding-sibling ou ancestor-or-self.

S’applique à

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Sélectionne une collection d'éléments à l'aide d'une expression XPath, en résolvant les préfixes d'espace de noms à l'aide du IXmlNamespaceResolver spécifié.

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)

Paramètres

node
XNode

XNode sur lequel évaluer l'expression XPath.

expression
String

String qui contient une expression XPath.

resolver
IXmlNamespaceResolver

IXmlNamespaceResolver pour les préfixes d'espace de noms dans l'expression XPath.

Retours

IEnumerable<XElement>

IEnumerable<T> de XElement qui contient les éléments sélectionnés.

Exemples

Cet exemple crée une arborescence XML qui contient un espace de noms. Il utilise un objet XmlReader pour lire le document XML. Il obtient ensuite un objet XmlNameTable à partir de l'objet XmlReader et un objetXmlNamespaceManager à partir de l'objet XmlNameTable. Il utilise le XmlNamespaceManager moment où vous sélectionnez la liste des éléments.

                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  

Cet exemple produit la sortie suivante :

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

Remarques

Vous pouvez utiliser cette méthode pour évaluer les expressions XPath qui contiennent des préfixes d’espace de noms.

Bien que l’ordre des collections retournées ne soit pas spécifié dans la recommandation XML XPath Language 1.0, cette méthode d’extension retourne des nœuds dans l’ordre du document.

Notez que les nœuds sont retournés dans l’ordre des documents, même lorsque vous utilisez un axe inverse, tel que preceding-sibling ou ancestor-or-self.

S’applique à