XPath - fondamentaux
Définition : Pas de localisation
Fondamental : Expression XPath
Définition : Axe
Un axe permet de définir le où 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
Définition : 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
Définition : 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
Exemple : 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