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>

Voir le fichier XML,Voir le fichier XSL,Voir les résultats.