hp: variablen in xsl definieren

hallo ihr lieben,

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

beste grüße
HP

  1. tach,

    nicht wirklich, was willst du denn erreichen?

    Gruß, Onkel X

  2. 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

    1. hallo thomas,

      deine antwort ist echt klasse. wow - vielen dank !!!

      grüße, HP

      <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].