Hallo,
vielen Dank, jetzt gehts :)
Ist es grundsätzlich unmöglich, eine Variable innerhalb eines Templates zu überschreiben,
Es ist grundsätzlich nicht möglich Variablen in XSLT 1.0 zu überschreiben (egal wo).
oder gibt es da auch eine Möglichkeit?
Jein, weil Trick 17 im Grunde die Variable auch nicht überschreibt:
<xsl:template match="X">
<xsl:call-template name="ab">
<xsl:with-param name="a" select="0" />
</xsl:call-template>
</xsl:template>
<xsl:template name="ab">
<xsl:param name="a" />
<xsl:variable name="b" select="$a + 1" />
<xsl:value-of select="$b" /> /
<xsl:if test="$b < 10">
<xsl:call-template name="ab">
<xsl:with-param name="a" select="$b" />
</xsl:call-template>
</xsl:if>
</xsl:template>
Ausgabe ist: 1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 /
Es scheint, also dass die Variable überschreiben wurde, aber das ist nicht der fall, denn der Wert ist bei jedem durchgang "$a + 1", dass sich $a ändert ist eine andere Sache.
Grüße
Thomas