xsl:call-template按名称存储在字符串中

时间:2019-05-29 13:43:27

标签: xslt

我有这个xsl模板:

<xsl:template name="test">
I'm test
</xsl:template>

我可以通过调用

来调用此模板
<xsl:call-template name="test"/>

问题: 如何通过存储在变量中的名称调用xsl模板?

<xsl:variable name="var1" select="'test'"/>
<xsl:call-template name="$var1"/>

1 个答案:

答案 0 :(得分:0)

请尝试使用xsl:call-template,而不要使用xsl:apply-templates

<xsl:template name="test" match="test">
I'm test
</xsl:template>

<xsl:variable name="var1"><test/></xsl:variable>

<xsl:apply-templates select="$var1/*"/>

但是在XSLT 3.0中,您可以使用高阶函数更干净地完成此操作。函数成为一等值,并且可以绑定到变量。