Sélection de données XML à l'aide de XPathNavigator
Mise à jour : November 2007
La classe XPathNavigator offre un ensemble de méthodes permettant de sélectionner une collection de nœuds dans un objet XPathDocument ou XmlDocument à l'aide d'une expression XPath. Une fois la collection de nœuds sélectionnée, vous pouvez y effectuer des itérations.
Méthodes de sélection de XPathNavigator
La classe XPathNavigator offre un ensemble de méthodes permettant de sélectionner une collection de nœuds dans un objet XPathDocument ou XmlDocument à l'aide d'une expression XPath. La classe XPathNavigator fournit également un ensemble de méthodes optimisées permettant une sélection plus rapide des nœuds ancêtres, enfants et descendants qu'avec une expression XPath. La collection de nœuds sélectionnée est retournée dans un objet XPathNodeIterator ou dans un objet XPathNavigator si un seul nœud est sélectionné.
Sélection de nœuds à l'aide d'expressions XPath
Pour sélectionner une collection de nœuds à l'aide d'une expression XPath, utilisez l'une des méthodes de sélection suivantes.
Lorsqu'elles sont appelées, ces méthodes retournent une collection de nœuds dans laquelle vous pouvez vous déplacer librement à l'aide d'un objet XPathNodeIterator ou d'un objet XPathNavigator si un seul nœud est sélectionné.
La navigation avec un objet XPathNodeIterator n'affecte pas la position de l'objet XPathNavigator utilisé pour le créer. L'objet XPathNavigator retourné par les méthodes SelectSingleNode est positionné sur le nœud unique retourné et n'affecte pas non plus la position de l'objetXPathNavigator utilisé pour le créer.
L'exemple suivant illustre la création d'un objet XPathNavigator à partir d'un objet XPathDocument, l'utilisation de la méthode Select pour sélectionner des nœuds dans l'objet XPathDocument et l'utilisation de l'objet XPathNodeIterator pour itérer sur les nœuds sélectionnés.
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);
}
L'exemple prend le fichier books.xml comme entrée.
<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éthodes de sélection optimisées
Les méthodes SelectChildren, SelectAncestors et SelectDescendants de la classe XPathNavigator représentent des expressions XPath couramment utilisées pour extraire des nœuds enfants, descendants et ancêtres. Ces méthodes sont optimisées pour offrir de meilleures performances et sont plus rapides que les expressions XPath correspondantes. Les méthodes SelectChildren, SelectAncestors et SelectDescendants sélectionnent des nœuds ancêtres, enfants et descendants d'après une valeur XPathNodeType ou d'après le nom local et l'URI d'espace de noms des nœuds à sélectionner. Les nœuds ancêtres, enfants et descendants sélectionnés sont retournés dans un objet XPathNodeIterator.
Voir aussi
Concepts
Traitement des données XML à l'aide du modèle de données XPath
Évaluation d'expressions XPath à l'aide de XPathNavigator
Mise en correspondance de nœuds avec XPathNavigator
Types de nœuds reconnus avec les requêtes XPath
Requêtes et espaces de noms XPath