xsl:call-template - 在两个模板调用之间绑定结果

时间:2014-12-09 15:14:40

标签: xslt

我调用了一个模板,该模板将返回一个css类名,具体取决于我作为参数发送的值。为了这个例子,让我们说参数是我们正在处理的元素的总和。我们还假设如果总和大于10(类“蓝色”),则css指定蓝色背景,如果总和小于或等于10(类“黄色”),则css指定黄色背景。

        <xsl:call-template name="template1">
            <xsl:with-param name="param" select="sum(.//something)"/>
        </xsl:call-template> 

我希望在另一个调用中使用此css类名,具体取决于从“template1”调用返回的内容。所以我希望以下元素可以是“黄色”或“蓝色”类,具体取决于前一次调用返回的内容。

        <xsl:call-template name="template2">
             <xsl:with-param name="param" select=".//something"/>
        </xsl:call-template>

这可以在xslt中实现吗?或者有更好的方法吗?欢迎任何想法!

1 个答案:

答案 0 :(得分:0)

您可以使用

将结果存储在变量中
<xsl:variable name="cssClass">
        <xsl:call-template name="template1">
            <xsl:with-param name="param" select="sum(.//something)"/>
        </xsl:call-template> 
</xsl:variable>

然后在其他地方你可以用例如<xsl:with-param name="param" select="$className"/>