我将一串键值对作为参数传递给XSL(日期 - >“1月20日”,作者 - >“Dominic Rodger”,...)。XSLT中的动态变量
这些在一些XML我解析引用 - 在XML看起来是这样的:
<element datasource="date" />
目前,我无法工作,如何1月20日摆脱这些除了与一个可怕的<xsl:choose>
声明:
<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>
我想使用类似:
<xsl:template match="element">
<xsl:value-of select="${@datasource}" />
</xsl:template>
但我怀疑这是不可能的。我打算使用外部函数调用,但希望避免在我的XSL中枚举所有可能的映射键。有任何想法吗?
感谢,
大教堂
请别注意,从提出的三个答案,两者是不正确的 - 没有一个“+”操作符在XPath的字符串,而且,AVT不能为“选择”指定属性在XSLT中。我的解决方案已经过测试和工作 – 2009-01-30 00:05:19