XPath : un premier laboratoire
Étant donné un document XML, on peut sélectionner un nœud au sein du document avec une expression XPath. Plus généralement, étant donné un document XML et un nœud courant, on peut sélectionner, relativement à ce nœud, tout autre nœud ou ensemble de nœuds correspondant à un certain motif régulier.
Dans cette première activité de familiarisation avec XPath, nous allons d’abord passer en revue rapidement les éléments de base et vous inviter à faire un petit laboratoire.
Les expressions XPath les plus simples comprennent seulement un nom XML. Dans ce cas, on sélectionne l’élément ayant le nom correspondant. Par exemple, l’expression « chien » va sélectionner tout élément nommé « chien » et contenu dans le nœud courant. S’il y en a plus d’un, plusieurs éléments pourront être sélectionnés. On peut utiliser l’astérisque (*) pour sélectionner tous les éléments du contexte courant, peu importe leur nom. Les deux points (..) permettent de sélectionner le parent du nœud courant (indiqué par « . »), ainsi « ../chien » permet de sélectionner les éléments « chien » dans le nœud parent. Si on veut ignorer le nœud courant et sélectionner tous les éléments chien, on peut obtenir ce résultat avec l’expression « //chien ». On peut aussi sélectionner le nœud racine... avec l’expression XPath « / ». Ainsi donc, « /* » sélectionnera toujours l’élément-racine. L’instruction « //* » va sélectionner tous les nœuds du document. On peut sélectionner un attribut avec le symbole « @ ». Ainsi, on peut sélectionner le contenu de l’attribut race de tous les éléments chien avec l’expression « //chien/@race ».
<animaux> <chien race="caniche" /> </animaux>
Avant de continuer plus loin avec la syntaxe XPath, nous vous invitons à utiliser le petit script suivant pour vous familiariser davantage avec la syntaxe :
XPath en ligne
Instructions : il suffit de saisir un document XML source et une expression XPath et d'appuyer sur le bouton. Le contenu textuel de chaque résultat est retourné. L'expression XPath est toujours appliquée à partir du nœud-racine. Cette petite application est limitée: elle suppose que le résultat prend une certaine forme (un ensemble de nœuds ou node set).