Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Método Extensions.XPathSelectElements (XNode, String, IXmlNamespaceResolver)

 
System_CAPS_noteObservação

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

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

Namespace:   System.Xml.XPath
Assembly:  System.Xml.Linq (em System.Xml.Linq.dll)

public static IEnumerable<XElement> XPathSelectElements(
	this XNode node,
	string expression,
	IXmlNamespaceResolver resolver
)

Parâmetros

node
Type: System.Xml.Linq.XNode

O XNode no qual a expressão XPath será avaliada.

expression
Type: System.String

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

resolver
Type: System.Xml.IXmlNamespaceResolver

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

Valor Retornado

Type: System.Collections.Generic.IEnumerable<XElement>

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

Você pode usar esse método para avaliar expressões XPath que contêm os prefixos de namespace.

Embora a ordenação de coleções retornadas não for especificada na recomendação XML XPath Language 1.0, esse método de extensão retorna nós na ordem do documento.

Observe que nós são retornados na ordem do documento, mesmo quando você usa um eixo inverso, tais como preceding-sibling ou ancestor-or-self.

Este exemplo cria uma árvore XML que contém o namespace. Usa XmlReader para ler o documento XML. Então obtém XmlNameTable de XmlReader, e XmlNamespaceManager de XmlNameTable. Ele usa 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);

Este exemplo gera 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>

.NET Framework
Disponível desde 3.5
Silverlight
Disponível desde 4.0
Retornar ao início
Mostrar: