Estoy pasando un conjunto de pares clave-valor como parámetros a un XSL (fecha -> "20 de enero", autor -> "Dominic Rodger", ...).Variables dinámicas en XSLT
éstos están mencionados en alguna XML Estoy análisis - el XML tiene el siguiente aspecto:
<element datasource="date" />
En la actualidad, no puedo encontrar la manera de llegar 20ma de enero de salir de ellos, excepto con una terrible <xsl:choose>
declaración:
<xsl:template match="element">
<xsl:choose>
<xsl:when test="@datasource = 'author'">
<xsl:value-of select="$author" />
</xsl:when>
<xsl:when test="@datasource = 'date'">
<xsl:value-of select="$date" />
</xsl:when>
...
</xsl:choose>
</xsl:template>
me gustaría usar algo como:
<xsl:template match="element">
<xsl:value-of select="${@datasource}" />
</xsl:template>
Pero sospecho que esto no es posible. Estoy empezando a usar llamadas a funciones externas, pero quiero evitar tener que enumerar todas las claves de mapa posibles en mi XSL. ¿Algunas ideas?
Gracias,
Dom
Por favor, tenga en cuenta que a partir de las tres respuestas presentados, dos no son correctos - no es un operador "+" para cuerdas en XPath, y también, un AVT no se puede especificar para un "seleccionar" atributo en XSLT. Mi solución está probada y funciona. –