Extensions.XPathSelectElements Método

Definição

Seleciona uma coleção de elementos usando uma expressão XPath.

Sobrecargas

Name Description
XPathSelectElements(XNode, String)

Seleciona uma coleção de elementos usando uma expressão XPath.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Seleciona uma coleção de elementos usando uma expressão XPath, resolvendo prefixos de namespace usando o especificado IXmlNamespaceResolver.

Observações

Embora a ordenação das coleções devolvidas não esteja especificada na Recomendação da Linguagem XML XPath 1.0, este método de extensão devolve os nós pela ordem dos documentos.

Note que os nós são devolvidos por ordem de documento mesmo quando se usa um eixo inverso, como preceding-sibling ou ancestor-or-self.

XPathSelectElements(XNode, String)

Seleciona uma coleção de elementos usando uma expressão 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)

Parâmetros

node
XNode

O XNode que se deve avaliar a expressão XPath.

expression
String

A String que contém uma expressão XPath.

Devoluções

Um IEnumerable<T> de XElement isso contém os elementos selecionados.

Exemplos

O exemplo seguinte cria uma pequena árvore XML e utiliza XPathSelectElements para selecionar um conjunto de elementos.

                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

Este exemplo produz a seguinte saída:

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

Observações

Embora a ordenação das coleções devolvidas não esteja especificada na Recomendação da Linguagem XML XPath 1.0, este método de extensão devolve os nós pela ordem dos documentos.

Note que os nós são devolvidos por ordem de documento mesmo quando se usa um eixo inverso, como preceding-sibling ou ancestor-or-self.

Aplica-se a

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Seleciona uma coleção de elementos usando uma expressão XPath, resolvendo prefixos de namespace usando o especificado 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);
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)

Parâmetros

node
XNode

O XNode que se deve avaliar a expressão XPath.

expression
String

A String que contém uma expressão XPath.

resolver
IXmlNamespaceResolver

A IXmlNamespaceResolver para os prefixos de namespace na expressão XPath.

Devoluções

Um IEnumerable<T> de XElement isso contém os elementos selecionados.

Exemplos

Este exemplo cria uma árvore XML que contém um namespace. Utiliza um XmlReader para ler o documento XML. Depois obtém-se um XmlNameTable do XmlReader, e um do .XmlNameTableXmlNamespaceManager Utiliza o XmlNamespaceManager ao selecionar a lista de elementos.

                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

Este exemplo produz a seguinte saída:

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

Observações

Pode usar este método para avaliar expressões XPath que contenham prefixos de namespace.

Embora a ordenação das coleções devolvidas não esteja especificada na Recomendação da Linguagem XML XPath 1.0, este método de extensão devolve os nós pela ordem dos documentos.

Note que os nós são devolvidos por ordem de documento mesmo quando se usa um eixo inverso, como preceding-sibling ou ancestor-or-self.

Aplica-se a