Función current() de XSLT

Definición y uso

La función current() devuelve un conjunto de nodos que contiene solo el nodo actual. Por lo general, el nodo actual es el mismo que el nodo de contexto.

<xsl:value-of select="current()"/>

igual a

<xsl:value-of select="."/>

Sin embargo, hay una diferencia. Veamos la expresión XPath siguiente: "catalog/cd". La expresión selecciona el subnodo <catalog> del nodo actual, luego selecciona el subnodo <cd> del nodo <catalog>. Esto significa que en cada paso de la computación, el "." tiene un significado diferente.

Esta línea es:

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

Procesará todos los elementos cd que tengan el valor del atributo title igual al valor del atributo ref del nodo actual.

Diferente a esto:

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

Este procesará todos los elementos cd que tengan el atributo title y ref con el mismo valor.

Sintaxis

node-set current()

Ejemplo

<?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">
    Nodo actual: <xsl:value-of select="}}current()"/>
    <br />
  </xsl:for-each>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

Ver archivo XML,Ver archivo XSL,Ver resultados.