Xpath
Par Marc Hoang d'Ornano le samedi 24 mars 2007, 18:02 - Technique - Lien permanent
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:
comment() : commentaire
text() : noeud de texte enfant direct
Les jokers:
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
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
XSLT et Xpointer utilisent Xpath pour sélectionner respectivement un élément ou un point.
Il y a 7 types de noeuds:
- racine
- élément
- texte
- attribut
- commentaire
- instruction de traitement
- espace de nom
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
- / : chemin absolu
- // : chemin relatif
- . : noeud contextuel
- .. : noeud parent
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
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