|
Principes
Nous venons de voir, à partir d'un
noeud contexte donné, comment sélectionner les noeuds qui
doivent composer le nodeset résultat. Il est possible d'ajouter
à chaque partie du chemin de localisation une ou plusieurs conditions
afin d'augmenter le pouvoir discriminant de l'expression XPath.
Ces conditions permettent de filtrer, parmi les noeuds composant un nodeset
intermédiaire, seulement ceux répondant à certains
critères.
Nous pouvons vouloir sélectionner, par exemple, seulement les sections
de niveau 2 (test sur les attributs des éléments), ou seulement
les premières sections de chaque chapitre (test sur les propriétés
d'un nodeset).
Syntaxe
Nous avons vu que la syntaxe d'un chemin de
localisation était la suivante :
axe1::nodeTest1/axe2::nodeTest2/
... /axen::nodeTestn
Chaque partie d'un tel chemin de localisation peut être agrémenté
d'un ou plusieurs prédicats :
axei::nodeTesti[prédicat1]...[prédicatn]
L'écriture suivante est équivalente :
axei::nodeTesti[prédicat1
and ... and prédicatn]
Types, opérateurs et fonctions
Nous avons parlé jusqu'ici uniquement de nodesets. XPath connaît
également les types booléen,
nombre (réel) et chaîne
de caractères. À chaque type est associé un
ensemble d'opérateurs et de fonctions.
Type |
Opérateur/Fonction |
Signification |
Réels |
- |
Opposé (opérateur unaire) |
+, - |
Addition et soustraction |
mod |
Reste de division entière |
div |
Quotient de division entière |
=, != |
Égalité, différence |
<, >, <=, >= |
Comparaison |
floor(), ceiling(), round(), sum() |
Voir la doc (attention aux conversions !!!) |
|
Booléens |
true(), false() |
Fonctions qui renvoient true et false (!) |
and, or |
et, ou logiques |
not() |
négation logique |
|
Chaînes de caractères |
contains (str1, str2) |
Renvoie vrai si la chaîne str1 contient la chaîne
str2 |
starts-with (str1, str2) |
Renvoie vrai si la chaîne str1 commence par la
chaîne str2 |
concat(str1, str2, ..., strn) |
Renvoie la concaténation des ses arguments (au moins deux) |
substring-before(str1, str2) |
Renvoie la partie de str1 située avant la première
occurrence de la sous-chaîne str2 (ou la chaîne
vide si str2 est absente) |
substring-after(str1, str2) |
Renvoie la partie de str1 située après
la première occurrence de la sous-chaîne str2
(ou la chaîne vide si str2 est absente) |
substring (str, n) |
Renvoie la sous-chaîne de str commençant à
l'indice n |
substring (str, n, lg) |
Renvoie la sous-chaîne de str commençant à
l'indice n et de longueur lg. |
string-length (str) |
Renvoie la longueur de la chaîne str. Si str est omise,
renvoie la longueur de la valeur textuelle du noeud contexte. |
translate (str1, str2, str3) |
Renvoie la chaîne str1 dans laquelle toutes les
occurrences de str2 ont été remplacées
par une occurrence de str3. |
normalize-space (str) |
Renvoie la chaîne str dans laquelle les espaces de début
et de fin ont été supprimés et où les
séquences de blancs (espaces, tabulations, retour-charriots)
ont été remplacées par un espace unique. |
|
|
|