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 un punto diferente. Veamos la expresión XPath siguiente: "catalog/cd". La expresión selecciona el nodo hijo <catalog> del nodo actual, luego selecciona el nodo hijo <cd> del nodo <catalog>. Esto significa que en cada paso de cálculo, "." tiene un significado diferente.

La siguiente línea:

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

Se procesarán todos los elementos cd en los que el valor del atributo title sea igual al valor del atributo ref del nodo actual.

Diferente a esto:

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

Este procesador manejará todos los elementos cd que tengan el valor del atributo title igual al valor del atributo ref.

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.