Compartilhar via


Selecionar dados XML usando XPathNavigator

A classe XPathNavigator fornece um conjunto de métodos usados para selecionar um conjunto de nós em um objeto XPathDocument ou XmlDocument usando uma expressão XPath. Depois de selecionado, você pode iterar sobre o conjunto de nós selecionado.

Métodos de seleção XPathNavigator

A classe XPathNavigator fornece um conjunto de métodos usados para selecionar um conjunto de nós em um objeto XPathDocument ou XmlDocument usando uma expressão XPath. A classe XPathNavigator também fornece um conjunto de métodos otimizados para selecionar nós ancestrais, filhos ou descendentes mais rapidamente do que usar uma expressão XPath. O conjunto de nós selecionado é retornado em um objeto XPathNodeIterator ou em um objeto XPathNavigator no caso de um único nó selecionado.

Selecionando nós usando expressões XPath

Para selecionar um conjunto de nós usando uma expressão XPath, use um dos seguintes métodos de seleção.

Quando chamados, esses métodos retornam um conjunto de nós que você pode navegar livremente usando um objeto XPathNodeIterator ou um objeto XPathNavigator no caso de um único nó selecionado.

A navegação com um objeto XPathNodeIterator não afeta a posição do objeto XPathNavigator usado para criá-lo. O objeto XPathNavigator retornado dos métodos SelectSingleNode é posicionado no único nó retornado e também não afeta a posição do objeto XPathNavigator usado para criá-lo.

O exemplo a seguir mostra a criação de um objeto XPathNavigator de um objeto XPathDocument, o uso do método Select para selecionar nós no objeto XPathDocument e o uso do objeto XPathNodeIterator para iterar sobre os nós selecionados.

Dim document As XPathDocument = New XPathDocument("books.xml")  
Dim navigator As XPathNavigator = document.CreateNavigator()  
Dim nodes As XPathNodeIterator = navigator.Select("/bookstore/book")  
  
While nodes.MoveNext()  
    Console.WriteLine(nodes.Current.Name)  
End While  
XPathDocument document = new XPathDocument("books.xml");  
XPathNavigator navigator = document.CreateNavigator();  
XPathNodeIterator nodes = navigator.Select("/bookstore/book");  
  
while(nodes.MoveNext())  
{  
    Console.WriteLine(nodes.Current.Name);  
}  

O exemplo usa o arquivo books.xml como entrada.

<?xml version="1.0" encoding="utf-8" ?> 
<bookstore>
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
        <title>The Autobiography of Benjamin Franklin</title>
        <author>
            <first-name>Benjamin</first-name>
            <last-name>Franklin</last-name>
        </author>
        <price>8.99</price>
    </book>
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
        <title>The Confidence Man</title>
        <author>
            <first-name>Herman</first-name>
            <last-name>Melville</last-name>
        </author>
        <price>11.99</price>
    </book>
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
        <title>The Gorgias</title>
        <author>
            <name>Plato</name>
        </author>
        <price>9.99</price>
    </book>
</bookstore>

Métodos de seleção otimizados

Os métodos SelectChildren, SelectAncestors e SelectDescendants da classe XPathNavigator representam as expressões XPath comumente usadas para recuperar os nós filho, descendentes e ancestrais. Esses métodos são otimizados para desempenho e são mais rápidos do que as expressões XPath correspondentes. Os métodos SelectChildren, SelectAncestors e SelectDescendants selecionam os nós ancestrais, filho e descendentes com base em um valor XPathNodeType ou o nome local e o URI do namespace dos nós a serem selecionados. Os nós ancestrais, filho e descendentes selecionados são retornados em um objeto XPathNodeIterator.

Confira também