jo so ähnlich hatte ich das bei mir.
<xsl:template match="teste">
<xsl:param name="h" select="150" />
xsl:choose
<xsl:when test="(@d + 1) * $h < 1000">
<xsl:apply-templates select="navigation" mode="after_check">
<xsl:with-param name="var" select="1000" />
</xsl:apply-templates>
</xsl:when>
xsl:otherwise
<xsl:apply-templates select="navigation" mode="after_check">
<xsl:with-param name="var" select="="(@d + 1) * $h" />
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="teste" mode="after_check">
...
</xsl:template>
muss das mit match und mode machen, weil quasi beide templates ja die selben quellxml elemente brauchen.
das erste brauch es für die checks mit @d und das zweite dann für den Code [...]
allerdings bekomm ich damit nun kein output mehr :(