ritschmanhard: Substring in XSL

Beitrag lesen

Hi Stil!

Ich sehe 2 Dinge:

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

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