Fonction current() de XSLT
Définition et utilisation
La fonction current() retourne un ensemble de noeuds contenant uniquement le noeud courant. Habituellement, le noeud courant est le même que le noeud de contexte.
<xsl:value-of select="current()"/>
Égal à
<xsl:value-of select="."/>
Cependant, il y a une différence. Regardons l'expression XPath suivante : "catalog/cd". Cette expression sélectionne le noeud enfant <catalog> du noeud courant, puis sélectionne le noeud enfant <cd> du noeud <catalog>. Cela signifie que le "." a un sens différent à chaque étape de la computation.
La ligne suivante :
<xsl:apply-templates select="//cd[@title=current()/@ref]"/>
Il traitera tous les éléments cd dont la valeur de l'attribut title est égale à la valeur de l'attribut ref du noeud courant.
C'est différent de :
<xsl:apply-templates select="//cd[@title=./@ref]"/>
Cela traitera tous les éléments cd qui ont des attributs title et ref avec la même valeur.
Grammaire
node-set current()
Exemple
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <xsl:for-each select="catalog/cd/artist"> Node actuel : <xsl:value-of select="}}current()"/> <br /> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>