xpath


   les requettes  
 <> 

 axe (sens de la recherche)  
self le noeud courant /stock/produit[ prix > 10 ]/self::produit[ prix < 99 ]
parent /stock/produit/comment/parent::produit/prix
child les fils du noeud courant (c'est l'axe par défaut). produit/child::nom
produit/nom
ancestor les ascendants du noeud courant /stock/produit/comment/ancestor::stock/produit
ancestor-or-self les ascendants du noeud courant et lui même
descendant les descendants du noeud courant /stock/descendant::prix
descendant-or-self les descendants du noeud courant plus lui-même.
preceding les noeuds placés avant dans le document
preceding-sibling les noeuds frères placés avant le noeud courant
following les noeuds placés après dans le document,
following-sibling les noeuds frères placés après le noeud courant,

Les types de nœuds 
text() : uniquement les nœuds textes.
comment() : uniquement les nœuds commentaires.
processing-instruction() ou processing-instruction(name) : toutes les instructions de traitement ou les instruction de traitement ayant pour nom name
node() : tous les nœuds peu importe le type (excepté les nœuds attributs).

Les fonctions xpath 
string-length( ... ) : longueur d’une chaîne ;
starts-with( chaîne1, chaîne2 ) : tester si chaîne1 commence par chaîne2 ;
substring( chaîne1, position1, longueur) : extraction d’une sous-chaîne ;
normalize-space( chaîne ) : normalisation des occurrences de blancs à 1 blanc ; suppression des blancs d’en-tête et de fin ;
translate( chaîne, caractères source, caractères destination ) : convertit dans la chaîne tous les caractères source par leur correspondance (en fonction de la position) dans le dernier argument ;
number( chaîne ) : conversion en nombre ;
string( expression ) : conversion en chaîne ;
concat( chaîne1, chaîne2 ) : concaténation ;
contains( chaîne1, chaîne2 ) : tester si chaîne1 contient chaîne2 ;
floor( nombre décimal ) : arrondi inférieur (10.9 devient 10) ;
ceil( nombre décimal ) : arrondi supérieur (10.1 devient 11) ;
round( nombre décimal ) : arrondi au plus juste (10.4 devient 10 et 10.6 devient 11) ;
count( NodeSet ) : nombre de nœuds ;
sum( n1,n2,... ) : somme ;
position() : position courante commençant par 1 ;
name() : renvoie le nom du noeud courant ;
last( NodeSet ) : renvoie le dernier élément ;
true(), false(), not(variable).???
boolean(object) : dépend du type de l'argument