Bases de Données XML : interrogation d'une base BaseX avec XQuery

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.

Exempleexemple 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

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Vincent Keller, Alexandre Mertz, 2015-2016 (Contributions : Stéphane Crozat, les étudiants de l'UTC) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)