Selecionar dados XML usando XPathNavigator
A XPathNavigator classe fornece um conjunto de métodos usados para selecionar um conjunto de nós em um XPathDocument objeto ou XmlDocument usando uma expressão XPath. Uma vez selecionado, você pode iterar sobre o conjunto selecionado de nós.
Métodos de seleção XPathNavigator
A XPathNavigator classe fornece um conjunto de métodos usados para selecionar um conjunto de nós em um XPathDocument objeto ou XmlDocument usando uma expressão XPath. A XPathNavigator classe também fornece um conjunto de métodos otimizados para selecionar nós ancestrais, filhos e descendentes mais rápido do que usar uma expressão XPath. O conjunto selecionado de nós é retornado em um XPathNodeIterator objeto ou um XPathNavigator objeto 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 XPathNodeIterator objeto ou um XPathNavigator objeto no caso de um único nó selecionado.
Navegar com um XPathNodeIterator objeto não afeta a posição do XPathNavigator objeto usado para criá-lo. O XPathNavigator objeto retornado dos SelectSingleNode métodos é posicionado no único nó retornado e também não afeta a posição do XPathNavigator objeto usado para criá-lo.
O exemplo a seguir mostra a criação de um XPathNavigator objeto a partir de um XPathDocument objeto, o Select uso do método para selecionar nós no XPathDocument objeto e o uso do XPathNodeIterator objeto 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 books.xml
arquivo 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 SelectChildrenmétodos , SelectAncestors, e SelectDescendants da XPathNavigator classe representam expressões XPath comumente usadas para recuperar nós filho, descendente e ancestral. Esses métodos são otimizados para desempenho e são mais rápidos do que suas expressões XPath correspondentes. Os SelectChildrenmétodos , SelectAncestors, e SelectDescendants selecionam nós ancestrais, filhos e descendentes com base em um XPathNodeType valor ou no nome local e no URI do namespace dos nós a serem selecionados. Os nós ancestral, filho e descendente selecionados são retornados em um XPathNodeIterator objeto.