Je passe dans un tas de paires clé-valeur en tant que paramètres à un XSL (date -> "20 Janvier", auteur -> "Dominic Rodger", ...).Variables dynamiques dans XSLT
Ceux-ci sont référencés en XML j'analyse - XML ressemble à ceci:
<element datasource="date" />
À l'heure actuelle, je ne peux pas travailler comment obtenir Janvier 20e sur ces sauf horrible <xsl:choose>
déclaration:
<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>
Je voudrais utiliser quelque chose comme:
<xsl:template match="element">
<xsl:value-of select="${@datasource}" />
</xsl:template>
Mais je suppose que ce n'est pas possible. J'ouvre à l'aide d'appels de fonction externes, mais je veux éviter d'avoir à énumérer toutes les clés de carte possibles dans mon XSL. Des idées?
Merci,
Dom
S'il vous plaît, ne noter que les trois réponses présentées, deux ne sont pas correctes - il n'y a pas un opérateur « + » pour les chaînes en XPath, et aussi, un AVT ne peut pas être spécifiée pour un « select » attribut dans XSLT. Ma solution est testée et fonctionne. –