Partager via


Sélection de données XML à l'aide 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. 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.

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