Fonction current() de XSLT

Définition et utilisation

La fonction current() retourne un ensemble de nœuds contenant uniquement le nœud actuel. Habituellement, le nœud actuel est le même que le nœud 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". L'expression sélectionne le sous-nœud <catalog> du nœud actuel, puis sélectionne le sous-nœud <cd> du nœud <catalog>. Cela signifie que dans chaque étape de calcul, "." a un sens différent.

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 nœud actuel.

Cela diffère de :

<xsl:apply-templates select="//cd[@title=./@ref]"/>

Cette règle traite tous les éléments cd qui ont des attributs title et ref avec des valeurs identiques.

Syntaxe

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.