将值添加到模板名称

时间:2016-02-09 18:09:51

标签: xslt

我有以下声明:

<xsl:call-template name="ad_state800x100"><xsl:with-param name="state" select="/*/locations/@state" /></xsl:call-template>

对于xpos

<xsl:variable name="xpos" select="substring-before(position(),'0')" />

我想要的是以下内容:

<xsl:call-template name="ad$xpos_state800x100">

因此,如果该位置为10,则为:

<xsl:call-template name="ad1_state800x100">

我如何实现这个

1 个答案:

答案 0 :(得分:0)

如果要动态决定调用多个模板中的哪一个,那么正确的XSLT机制就是xsl:apply-templates。

您还没有告诉我们您的问题,因为我确切知道您将如何在您的情况下执行此操作,或者实际上是否需要动态调度才能成为解决方案的一部分。事实上,你还没有告诉我们你的问题 - 只是尝试了一个不会起作用的解决方案。