whine: when-Bedingung greift nicht

Hallo!

Ich möchte ein Datum im Format YYYY-MM-TT in der Form TT. Monatsname YYYY ausgeben. Dazu lese ich mit substring z.B. 01 aus um dann mittels choose den Monatsnamen auszugeben:

<xsl:choose>
<xsl:when test="$pub_month ='01'">
	<xsl:variable name="txt_pub_month" select="'Januar'"/>
</xsl:when>
...
<xsl:otherwise><xsl:variable name="txt_pub_month" select="'n.def'"/></xsl:otherwise>
</xsl:choose>

Ohne <when> wird es sauber dargestellt, aber sobald ich es in when einbaue, bekomme ich im FOP ein "Variable nicht definiert". Hat jemand eine Idee?

whine

  1. Hallo whine,

    Ohne <when> wird es sauber dargestellt, aber sobald ich es in when einbaue, bekomme ich im FOP ein "Variable nicht definiert". Hat jemand eine Idee?

    Probiere es so:

    <xsl:variable name="txt_pub_month">
      <xsl:choose>
        <xsl:when test="$pub_month ='01'">Januar</xsl:when>
        <!-- ... -->
        <xsl:otherwise>n.def</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    

    Grüße, Thomas

    1. Hallo whine,

      Ohne <when> wird es sauber dargestellt, aber sobald ich es in when einbaue, bekomme ich im FOP ein "Variable nicht definiert". Hat jemand eine Idee?

      Probiere es so:

      <xsl:variable name="txt_pub_month">
        <xsl:choose>
          <xsl:when test="$pub_month ='01'">Januar</xsl:when>
          <!-- ... -->
          <xsl:otherwise>n.def</xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
      

      Grüße, Thomas

      Hallo Thomas,

      großartig! Ich hätte zwar auch selbst drauf kommen können, weil ich es an anderer Stelle mit Parameterübergabe ähnlich mache, aber manchmal sieht man den Wald vor Bäumen nicht. Danke!

      whine

  2. @@whine

    Ich möchte ein Datum im Format YYYY-MM-TT in der Form TT. Monatsname YYYY ausgeben.

    Bei der Form mit Monatsnamen sollte beim Tag keine führende Null sein, also T. Monatsname YYYY. Beispiel: 5. Juni 2015 (nicht 05. Juni 2015).

    LLAP

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)