XPath - fondamentaux

Pas de localisation

Une expression XPath est composée de plusieurs pas de localisation successifs séparés par des /.

Un pas de localisation se présente de la manière suivante :

axe::test-de-noeud[predicat]

Expression XPath

Une expression XPath se constitue d'une succession de pas de localisation

pas-de-localisation-1/.../pas-de-localisation-N

Axe

Un axe permet de définir le chercher

l'axe est optionnel. Par défaut une expression XPath sans axe sélectionne les enfants

J'utilise un axe quand :

  • Je veux naviguer dans le document XML en accédant au parent, aux cousins, aux descendants, ... du/des nœuds courants

  • Je veux accéder à des attributs et non à des noeuds

Je n'utilise pas d'axes pour :

  • Effectuer des restrictions sur le résultat de mon pas

Test de nœud

Un test de nœud permet de définir le sujet que l'on recherche

L'étoile "*" permet de sélectionner tout les nœuds du pas courant (non-test)

J'utilise un test de nœud pour :

  • Sélectionner un nœud par son nom

  • Sélectionner des nœuds d'un nodetype donné (comment, text, node)

Je n'utilise pas de test de nœud pour :

  • Effectuer des restrictions sur autre chose que des types ou des noms de nœud

Prédicat

Un prédicat permet de définir les propriétés que l'on recherche

Le prédicat est optionnel et vaut "true()" par défaut (sélectionne tout)

J'utilise un prédicat quand :

  • J'ai besoin de filtrer mes résultats sur une donnée inscrite dans le document

  • J'ai besoin de construire une requête détaillée

J'évite d’utiliser les prédicats pour :

  • Faire ce qu'on peut faire avec un simple test de nœud

  • Faire ce qu'on peut faire avec un axe bien choisi

Prédicats

  • x[1], x[2], etc. : sélectionne le premier x, le second x, etc.

  • x[last()] : sélectionne le dernier x

  • x[@a='valeur'] : sélectionne les x tels que leur attribut a est égal à "valeur"

  • x[y=1] : sélectionne les x tels qu'ils ont un élément fils y égal à 1

  • x[@a='v1' and @b='v2'] : sélectionne tous les x tels que leurs attributs a et b sont respectivement égaux à v1 et v2

  • x[y or z] : sélectionne tous les x tels qu'ils possède un élément fils y ou z

AccueilRappels > XPath - fondamentaux< PrécédentSuivant >