Hi Stil!
Ich sehe 2 Dinge:
-
12 mal <if test = "..." /> <if test = "..." /> , von denen stets NUR EIN if ausgeführt werden kann. Es werden also stets alle 12 Prüfungen ausgeführt, obwohl nur eine Bedingung erfüllt werden kann. An dieser Stelle ist definitiv xsl:choose mit xsl:when die bessere Wahl.
-
Die Nichtausführung deines XSL resultiert aus dem Variablenscope: die von dir in den <if /> blöcken definierte Variable start_monat_z hat außerhalb der if Anweisung keine Gültigkeit, sie ist also _nicht_ definiert in der Anweisung:
<xsl:variable name="start_date"><xsl:value-of select="$start_jahr" />-<xsl:value-of select="$start_monat_z" />-<xsl:value-of select="$start_tag" />T18:00:02-04:00</xsl:variable>
Die Lösung liegt darin, die if (oder besser choose/when) Anweisung _in_ die Variable zu legen (hier noch Beispiel mit if, ich bin faul):
<xsl:variable name="start_monat_z">
<xsl:if test="$start_monat='Jan'">01</xsl:if>
...
<xsl:if test="$start_monat='Dec'">12</xsl:if>
</xsl:variable>
Grüße,
Richard