在xslt中将一个模板的结果作为参数传递给另一个模板



我想对XSLT中一个模板的输出应用转换是否有任何方法可以将一个XSLT模板的输出作为参数传递给另一个模板

主模板

<xsl:template name="maintemplate">
<xsl:with-param name="Outputsecondtemplate" select=$sencondtemplate/>
<xsl:value-of select="translate($Outputsecondtemplate,' -:','')" />
</xsl:template>

给料机模板

<xsl:template name="sencondtemplate">
<xsl:param name="context"/>
<xsl:param name="attrib"/>
<xsl:param name="case"/>
<xsl:value-of select='$context/value[@attribute=$attrib and @case=$case]' />
</xsl:template>

是否可以将一个xslt模板的输出作为参数传递给另一个模板

你可以这样做:

<xsl:call-template name="maintemplate">
<xsl:with-param name="Outputsecondtemplate">
<xsl:call-template name="secondtemplate">
<xsl:with-param name="context" select="some-context"/>
<xsl:with-param name="attrib" select="some-attrib"/>
<xsl:with-param name="case" select="some-case"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>

虽然不清楚你在什么上下文中这样做


你也可以从主模板调用子模板,例如:

<xsl:template name="maintemplate">
<!-- ... -->
<xsl:variable name="Outputsecondtemplate">
<xsl:call-template name="secondtemplate">
<xsl:with-param name="context" select="some-context"/>
<xsl:with-param name="attrib" select="some-attrib"/>
<xsl:with-param name="case" select="some-case"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="translate($Outputsecondtemplate,' -:','')" />
</xsl:template>

相关内容

最新更新