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
* = sélectionne tous les éléments localisés par ce qui la précède dans le chemin
/AAA/*
tous les éléments fils de AAA, à savoir les BBB
[] = permet de sélectionner plus précisément un élément (le premier élément étant indexé à 1)
//BBB[last()]
le dernier BBB
@ = les attributs sont spécifiés par @
/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
Les attributs peuvent être des critères de sélection
//*[@id=’2’]
tous les éléments dont l’attribut id = ‘2’
il existe des fonctions qui permettent d’affiner la sélection :
//*[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
On peut combiner plusieurs chemins avec l’opérateur |
//AAA | //DDD
les éléments AAA et les éléments DDD

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.