MudGuard: "for-schleife" möglich?

Beitrag lesen

Hi,

ich muß an verschiedenen Stellen ein Template aufrufen mit dem laufenden Jahr, dem Jahr davor, zwei Jahre davor, drei Jahre davor usw., also mit 2007, 2006, 2005, usw. - wobei die Anzahl der Template-Aufrufe an den verschiedenen Stellen unterschiedlich ist.

Bisher habe ich sowas:

  
<xsl:variable name="currentyear" select="substring(TODAY,1,4)"/>  
  
<xsl:apply-templates select="element">  
    <xsl:with-param name="year" select="$currentyear"/>  
</xsl:apply-templates>  
<xsl:apply-templates select="element">  
    <xsl:with-param name="year" select="$currentyear - 1"/>  
</xsl:apply-templates>  
<xsl:apply-templates select="element">  
    <xsl:with-param name="year" select="$currentyear - 2"/>  
</xsl:apply-templates>  

Das funktioniert zwar, gefällt mir aber nicht. Bei nur 3 zu berücksichtigenden Jahren geht's ja noch, aber teilweise sind es erheblich mehr.

Mir fällt als Lösungsmöglichkeit nur ein Template ein, das sich rekursiv aufruft und 2 Parameter bekommt: das Jahr, das bearbeitet werden soll (welches immer um 1 verringert wird bei der Übergabe für den Selbstaufruf), und das, das als letztes bearbeitet werden soll (welches nur durchgereicht wird).

Gefällt mir aber auch nicht richtig ...

Gibt's was schöneres?

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.