我有这个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"/>
答案 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中,您可以使用高阶函数更干净地完成此操作。函数成为一等值,并且可以绑定到变量。