Supprime les espaces (ou d'autres caractères) de d but de chaîne
Les axes de recherche XPath... Un axe définit un ensemble de nœuds par rapport au nœud actuel
Nous allons utiliser le document XML suivant dans les exemples ci-dessous.
Exemple : Copier le code
<?xml version="1.0" encoding="ISO-8859-1"?>
<stock>
<livre>
<title lang="eng">Harry Potter</title>
<prix>29.99</prix>
</livre>
<livre>
<title lang="eng">Learning XML</title>
<prix>39.95</prix>
</livre>
<produit> <nom> Livre </nom><prix monnaie="Francs"> 50 </prix> <comment> Un commentaire </comment> </produit> <produit> <nom> CD </nom><prix monnaie="Euros"> 23 </prix> </produit> <!-- Texte --> </stock>
Un axe définit un ensemble de nœuds par rapport au nœud actuel.
Le tableau suivant résume tous les axes
AxisName |
Nom de l’axe en français |
Résultat |
---|---|---|
ancestor |
ancêtre |
Sélectionne tous les ancêtres (parents, grands-parents, etc.) du nœud actuel |
ancestor-or-self |
ancêtre-ou-self |
Sélectionne tous les ancêtres (parents, grands-parents, etc.) du nœud actuel et le nœud actuel lui-même |
attribute |
attribut |
Sélectionne tous les attributs du nœud actuel |
child |
enfant |
Sélectionne tous les enfants du nœud actuel |
descendant |
descendant |
Sélectionne tous les descendants (enfants, petits-enfants, etc.) du nœud actuel |
descendant-or-self |
descendant-ou-self |
Sélectionne tous les descendants (enfants, petits-enfants, etc.) du nœud actuel et le nœud actuel lui-même |
following |
suivant |
Sélectionne Tout dans le document après la balise de fermeture du nœud actuel |
following-sibling |
la suite-sibling |
Sélectionne tous frères et sœurs après le nœud actuel |
namespace |
espace de noms |
Sélectionne tous les nœuds d'espace de noms du nœud actuel |
parent |
parent |
Sélectionne le parent du nœud actuel |
preceding |
précédant |
Tout sélectionne dans le document qui est avant la balise de début du nœud actuel |
preceding-sibling |
frère précédent |
Sélectionne tous frères et sœurs avant le nœud actuel |
self |
Self |
Sélectionne le nœud actuel |
Un chemin de localisation peut être absolue ou relative.
Un chemin de localisation absolue commence par une barre oblique (/) et
un chemin de localisation relative non.
Dans les deux cas, que le chemin de localisation consiste en une ou
plusieurs étapes, séparées par une barre oblique :
Un chemin absolue:
|
Chaque étape est évaluée pour les nœuds dans l'ensemble de nœuds
actuel.
Une étape consiste à :
La syntaxe d'une étape de localisation est :
axisname::nodetest[filtre] |
Exemple |
Résultat |
---|---|
Child::livre |
Sélectionne tous les nœuds de livre qui sont des enfants du nœud actuel |
attribute::lang |
Sélectionne l'attribut lang du nœud actuel |
Child:: * |
Sélectionne tous les enfants du nœud actuel |
attribut:: * |
Sélectionne tous les attributs du nœud actuel |
Child::Text() |
Sélectionne tous les nœuds enfants de texte du nœud actuel |
Child::node() |
Sélectionne tous les nœuds enfants du nœud actuel |
descendant::livre |
Sélectionne tous les descendants de livre du nœud actuel |
Ancestor::livre |
Sélectionne tous les ancêtres de livre du nœud actuel |
Ancestro or self::livre |
Sélectionne tous les ancêtres du livre du nœud actuel - et le courant même si c'est un nœud de livre |
Child:: * / child::prix |
Sélectionne tous les enfants de prix du nœud actuel |
node()
tous les noeuds de l'axe sauf la racine,
/stock/produit/prix/node()
id(label)
le noeud repéré par une étiquette,
id('CD')/prix
Rappel : les sélecteurs de noeuds sont de la forme :
axe::filtre[condition1][condition2]...
expression-xpath
vraie si l'expression renvoie un ensemble non vide de noeuds.
/stock/produit[prix/attribute::monnaie]
/stock/produit[prix[attribute::monnaie]]
Ces expressions sélectionnent les noeuds produit à condition qu'un prix existe avec l'attribut monnaie précisé.
numéro
vraie si le noeud courant à cette position dans le contexte courant.
produit[2][comment]
produit[comment][2]
La première expression sélectionne les noeuds produit en deuxième position si il possède un élément fils comment, la seconde sélectionne le deuxième noeud produit qui possède un élément fil comment.
expr-xpath1 relation
expr-xpath2
vraie si il existe n1 (dans le résultat de expr-xpath1) et n2
(dans le résultat de expr-xpath2) qui respectent la relation.
les relations possibles sont =, !=, <,
<=, >, >=.
produit[prix = 100] (1)
produit[prix != 100] (2)
produit[prix < /stock/produit/prix] (3)
Explications : (1) les produits qui ont un prix égal à 100 ; (2) les
produits qui ont un prix différent de 100 ; (3) tous les produits sauf
les plus onéreux.
condition1
andcondition2
vraie si les deux conditions le sont également.
produit[prix > 10 and comment]
condition1
or
condition2
vraie si au moins une des deux conditions est vraie.
not(condition)
vraie si la condition est fausse.
produit[not(prix != 100)]
tous les prix sont égaux à 100.
>Cours precedent: XPATH syntaxe |
Sommaire de : Le langage XML |
Cours suivant: XPATH operateurs et fonction |