Xpath

C'est un langage non xml pour identifier des parties de documents xml. Il indique les noeuds par position, position relative, type ou contenu
XSLT et Xpointer utilisent Xpath pour sélectionner respectivement un élément ou un point.

Il y a 7 types de noeuds:
  1. racine
  2. élément
  3. texte
  4. attribut
  5. commentaire
  6. instruction de traitement
  7. espace de nom
match= "/" : noeud racine
comment() : commentaire
text() : noeud de texte enfant direct

Les jokers:
  • * : tout noeud d'élément. Ex svg:* : tous les éléments de l'espace de nom svg
  • node() : tous les noeuds
  • @* : noeuds d'attribut
  • | : ou
Localisation:
  • / : chemin absolu
  • // : chemin relatif
  • . : noeud contextuel
  • .. : noeud parent
Un prédicat sélectionne un sous-ensemble.
Ex: <xsl:apply-templates select="//element[.='value']"/>
<xsl:apply-templates select="//element[@id=8]"/>
and et or sont les opérateurs logiques des prédicats.

La notation abrégée ci-dessus permet de parcourir child|parent|self|attribute|descendant-or-self.
On peut aussi utiliser une localisation non-abrégée
  • ancestor : tous les ancètres
  • following-sibbling : frères cadets
  • preceding-sibling : frères ainés
  • following : noeuds suivants
  • preceding : noeuds précédents
  • namespace : tous les espaces de nom dans la portée du noeud contextuel
  • descendant : tous les descendants
  • ancestor-or-self : ancètre ou soi-même
Ex: <xsl:apply-templates select="descendant::noeud"/>

Les fonctions Xpath
Sur un ensemble de noeuds:
count(//nom) :nombre d'éléments nom
position() : cardinalité de l'élément
id('mca1') pointe sur l'id unique mca1
string() = xsl :value-of()
start-with('ornano','or')=true
contains('mca','ca')=true
substring-before('dd/mm/yy','/')='dd'
substring-after('dd/mm/yy','/')='yy'
substring('dd/mm/yy',4,2)='mm'
substring('dd/mm/yy',7)='yy'
string-length('ornano')=6

fonction booléennnes
not() : inverse
boolean() : convertit en booléen


fonction nombres<br/> number() : conversion
round(3,1)=floor(3,1)=3
ceiling(3,1)=4

La discussion continue ailleurs

URL de rétrolien : http://www.d-ornano.com/blog-de-marc-hoang/index.php?trackback/20

Fil des commentaires de ce billet