OUJOOD.COM
Syntaxe XPath
XML cours tutorial
XPath utilise une syntaxe compacte et non-XML pour faciliter son
utilisation dans des URI et des attributs de balises XML. XPath agit
sur les structures abstraites et logiques d'un document XML, plutôt que
sur sa syntaxe apparente.
Le nom XPath vient de l'utilisation d'une écriture de type "chemins
d'accès", comme les URL, pour se déplacer à l'intérieur de la structure
hiérarchique d'un document XML.
XPath utilise des expressions de chemin d'accès pour sélectionner les
nœuds ou ensembles de nœud dans un document XML.
Le nœud est sélectionné en suivant un chemin d'accès.
Exemple de Document XML
Nous allons utiliser le document XML suivant dans les exemples ci-dessous.
Sélectionner le code
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
Sélection de nœuds
XPath utilise les expressions de chemin d'accès pour sélectionner des
nœuds dans un document XML. Le nœud est sélectionné en suivant un
chemin d'accès ou les étapes.
Les expressions de chemin d'accès les plus utiles sont énumérées
ci-dessous :
|
Expression |
Description |
|---|---|
|
Nom du nœud |
Sélectionne tous les nœuds enfants du nœud nommé |
|
/ |
Sélectionne le nœud racine |
|
// |
Sélectionne les nœuds dans le document à partir du nœud actuel qui correspondent à la sélection, peu importe où ils se |
|
. |
Sélectionne le nœud actuel |
|
.. |
Sélectionne le parent du nœud actuel |
|
@ |
Sélectionne les attributs |
Dans le tableau ci-dessous, nous avons listé certaines expressions de chemin d'accès et le résultat des expressions :
|
Expression de chemin |
Résultat |
|---|---|
|
bookstore |
Sélectionne tous les nœuds enfants de l'élément bookstore |
|
/Bookstore |
Sélectionne l'élément racine bookstore Note : Si le chemin commence par une barre oblique (/) il représente toujours un chemin absolu vers un élément ! |
|
bookstore/book |
Sélectionne tous les éléments du book qui sont des enfants bookstore |
|
//Book |
Sélectionne tous les éléments du book peu importe où ils se trouvent dans le document |
|
bookstore / book |
Sélectionne tous les éléments du book que sont les descendants de l'élément bookstore, peu importe où ils se trouvent sous l'élément bookstore |
|
//@lang |
Sélectionne tous les attributs qui sont nommées lang |
Prédicats
Les prédicats sont utilisés pour trouver un nœud spécifique ou un nœud
qui contient une valeur spécifique.
Les prédicats sont toujours incorporées entre crochets.
Dans le tableau ci-dessous, nous avons listé certaines expressions de
chemin d'accès avec les prédicats et le résultat des expressions :
|
Expression de chemin |
Résultat |
|---|---|
|
/ bookstore/book [1] |
Sélectionne le premier élément du book qui est l'enfant de l'élément bookstore. Note : IE5 et plus tard a instauré ce [0] devrait être le premier nœud, mais conformément à la norme du W3C, il aurait dû être [1]!! |
|
/ bookstore/book[last()] |
Sélectionne le dernier élément du book qui est l'enfant de l'élément bookstore |
|
book/bookstore / [la dernière ()-1] |
Sélectionne l'avant-dernier élément d'un book qui est l'enfant de l'élément bookstore |
|
/Bookstore/Book[position() < 3] |
Sélectionne les premiers éléments de deux books qui sont des enfants de l'élément bookstore |
|
/ / title[@lang] |
Sélectionne tous les éléments de title qui ont un attribut nommé lang |
|
/ / title[@lang='eng'] |
Sélectionne tous les éléments de title qui ont un attribut nommé lang avec une valeur « eng » |
|
book/bookstore / [price > 35,00] |
Sélectionne tous les éléments book de l'élément bookstore qui ont un élément price avec une valeur supérieure à 35,00 |
|
book/bookstore / [price > 35,00] / title |
Sélectionne tous les éléments de title des éléments book de l'élément bookstore qui ont un élément price avec une valeur supérieure à 35,00 |
Sélection de nœuds inconnus
Caractères génériques qui peuvent servir à sélectionner les éléments XML inconnus.
|
caractère |
Description |
|---|---|
|
* |
Correspond à un nœud d'élément |
|
@* |
Correspond à un nœud d'attribut |
|
node() |
Correspond à un nœud quelconque |
Dans le tableau ci-dessous, nous avons listé certaines expressions de chemin d'accès et le résultat des expressions :
|
Expression de chemin |
Résultat |
|---|---|
|
/ bookstore / * |
Sélectionne tous les nœuds enfants de l'élément bookstore |
|
//* |
Sélectionne tous les éléments dans le document. |
|
/ / title[@*] |
Sélectionne tous les éléments title qui ont un attribut |
Sélection de plusieurs chemins d'accès
En utilisant le | opérateur dans une expression XPath, vous pouvez
sélectionner plusieurs chemins d'accès.
Dans le tableau ci-dessous, nous avons listé certaines expressions de
chemin d'accès et le résultat des expressions :
|
Expression de chemin |
Résultat |
|---|---|
|
//Book/title | //Book/Price |
Sélectionne toutes les title et price des éléments de tous les éléments du book |
|
//title | //Price |
Sélectionne toutes les title et price des éléments dans le document |
|
/Bookstore/Book/title | //Price |
Sélectionne tous les éléments title de l'élément book de l'élément bookstore et tous les éléments price dans le document. |
| Cours precedent: XPATH nœuds |
Sommaire de : Le langage XML |
Cours suivant: XPATH axes |