Syntaxe XPath

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:
cours precedent  XPATH nœuds
    Sommaire de :
Le langage XML
 Cours suivant:
XPATH axes   cours suivant
Par carabde 10 mai 2014