Thomas Meinike: variablen in xsl definieren

Beitrag lesen

Hallo,

kann ich in xsl eine variable definieren, mit der ich rechnen kann? z.b. i++

XSL-Variablen koennen nur jeweils neu definiert werden (z. B. in einem xsl:for-each-Konstrukt) -- sie verhalten sich in ihrem Aufrufkontext wie Konstanten.

Um die Ausgabe

1
2
3
4
5

zu erhalten (ohne die Werte als XML-Inhalte vorzuhalten) ist der rekursive Aufruf von Parameter-Templates noetig, z. B.:

<xsl:template match="/">

<xsl:call-template name="zaehler">
    <xsl:with-param name="i" select="1"/>
    <xsl:with-param name="imax" select="5"/>
  </xsl:call-template>

</xsl:template>

<xsl:template name="zaehler">

<xsl:param name="i"/>
  <xsl:param name="imax"/>

<xsl:value-of select="$i"/><br />

<xsl:if test="$i &lt; $imax">
    <xsl:call-template name="zaehler">
      <xsl:with-param name="i" select="$i+1"/>
      <xsl:with-param name="imax" select="$imax"/>
    </xsl:call-template>
  </xsl:if>

</xsl:template>

Nach diesem Prinzip kann man auch andere Rechenoperationen ausfuehren [+ - * div mod].

MfG, Thomas