XSL : eXtensible Stylesheet Language
XPath
1. Généralités
XPath pour XML Path
Le langage XSLT utilise pour naviguer dans un document XML la syntaxe Xpath. C’est une syntaxe assez similaire à celle utilisée pour naviguer dans un arbre (au sens algorithmique du terme), c'est-à-dire qu'elle intègre des fonctions avec notions de "père", "fils"... Il est alors possible de sélectionner des éléments, des attributs ou tout autre constituant.
2. Exemples
Plutôt que d'énoncer les principaux éléments de syntaxe et fonctions XPath, qui ont de plus été traités durant le cours XML/XSL de M. Laporte, nous allons voir quelques exemples d'expressions XPath et leur résultat.
Considérons l'arbre suivant :
<AAA id = "1" a = "aaa">
<BBB id = "2" b = "bbb">
<CCC id = "3" c = "ccc"/>
</BBB>
<BBB>
<CCC id = "4" c = "ccc">
<DDD id = "5" d = "ddd"/>
</CCC>
</BBB>
</AAA>
Voici des expressions XPath et leur résultat :
- /AAA
- l’élément AAA
- //BBB
- tous les éléments BBB
- //BBB/CCC
- tous les éléments BBB qui ont un fils CCC
- /AAA/*
- tous les éléments fils de AAA, à savoir les BBB
- //BBB[last()]
- le dernier BBB
- /AAA/@*
- id = "1" a = "aaa"
- //BBB[@id]
- tous les éléments qui ont un attribut id, ici le 1er élément <BBB>
- //*[@*]
- tous les éléments qui ont un attribut
- //*[@id=’2’]
- tous les éléments dont l’attribut id = ‘2’
- //*[name()=’BBB’]
- tous les éléments de nom 'BBB' ; correspond à //BBB
- //*[starts-with(name(), ‘B’]
- tous les éléments dont le nom commence par B
- //*[contains(name(), ‘C’]
- tous les éléments dont le nom contient C
- //*[count(@*)=’0’]
- tous les éléments qui n’ont aucun attribut
- //*[string-length(name())=’3’]
- tous les éléments dont le nom a 3 lettres
- //AAA | //DDD
- les éléments AAA et les éléments DDD
* = sélectionne tous les éléments localisés par ce qui la précède dans le chemin
[] = permet de sélectionner plus précisément un élément (le premier élément étant indexé à 1)
@ = les attributs sont spécifiés par @
Les attributs peuvent être des critères de sélection
il existe des fonctions qui permettent d’affiner la sélection :
On peut combiner plusieurs chemins avec l’opérateur |
3. Conclusion
C’est une syntaxe très riche qui permet de naviguer dans tout l’arbre correspondant à un document XML.
Pour plus de précisions sur la syntaxe XPath, veuillez consulter la page de liens.