Holge r: Schleife mit XSL

Beitrag lesen

Ich glaube du solltest hier einfach dem Parameter per default einen numerischen Wertebereich zuweisen. Ist eine Murks die erst mit xslt2.0 gelöst wurde.

Versuch einfach mal

<xsl:call-template name="Schleife">
   <xsl:with-param name="Anzahl" select="count(Element)" />
</xsl:call-template>

<xsl:template name="Schleife">
<xsl:param name="Zaehler" select="1" />
<xsl:param name="Anzahl" select="0" />
<xsl:if test="$Zaehler &lt;= $Anzahl">
   <xsl:value-of select="." />xsl:text&#x9;</xsl:text>
   <xsl:call-template name="Schleife">
      <xsl:with-param name="Zaehler" select="($Zaehler)+1" />
      <xsl:with-param name="Anzahl" select="$Anzahl" />
   </xsl:call-template>
</xsl:if>
</xsl:template>

Zur not test noch mit einer if abfrage zufor, ob es sich beim Paramter Zahl wirklich um eine Zahl handelt

<xsl:if test="number($Anzahl)>
<xsl:if test="$Zaehler &lt;= $Anzahl">
   <xsl:value-of select="." />xsl:text&#x9;</xsl:text>
   <xsl:call-template name="Schleife">
      <xsl:with-param name="Zaehler" select="($Zaehler)+1" />
      <xsl:with-param name="Anzahl" select="$Anzahl" />
   </xsl:call-template>
</xsl:if>
</xsl:if>

Gruss, Holge r