XPath
Définition :
langage qui permet de désigner un ou plusieurs nœuds dans un document XML , à l'aide d'expressions de chemin.
Il fournit une syntaxe relativement simple qui permet de cibler directement un fragment du document traité, un ensemble de nœuds ou encore un attribut d'un nœud .
Comme son nom le suggère, path signifiant chemin en anglais, la syntaxe de ce langage ressemble aux chemins d'accès aux fichiers dans un système : les éléments d'une expression XPath sont séparés par des slashs '/'.
Modèle du document de XPath
XPath voit un document sous forme d'arborescence. Chaque élément d'information (éléments XML, attributs XML, texte, etc.) est appelé “nœud” (node). Ce modèle ressemble au DOM (mais n'est pas identique !)
Nœud vues par XPATH
nœud racine (root node)
nœuds d'éléments et d'attributs
nœuds de commentaires, d'instructions de traitement, de namespace.
Attention :
le nœud racine vue par XPATH n'est pas forcément celle de l'élément racine du XML. XPath verrait en premier des instructions de traitement (feuille de style, etc.) ou commentaires au début de fichier
Nœud non vue par XPATH
XPath voit le document une fois qu'il est construit, donc ne voit pas les entités, déclarations de type de document, etc.
Exemple : exemple d'instruction XPATH
Nœud | Instruction |
Nœud racine: retourne le premier nœud trouvé dans un arbre | / |
Élément enfant direct | nom_élément_XML |
Élément enfant direct du nœud racine: | /nom_élément_XML |
Toute les balises: | //* |
Descendant arbitraire du nœud racine: | //nom_élément_XML |
Un parent d'un nœud: | ../ |
cousin lointain d'un nœud | ../../nom_élément_XML/ nom_élément_XML |
attribut d'un élément | @nom_attribut |
tous les attributs "bla" | //@bla |
élément qui a un attribut avec une certaine valeur | nom_élément_XML [ @nom_attribut = 'valeur'] |
élément qui a un autre élément comme enfant | nom_élément_XML [ nom_élément_XML ] |
Complément :
Les différentes instructions de XPath sont listés sur plusieurs sites web comme http://www.w3schools.com/xsl/xpath_syntax.asp