PeterK: Sort in When verwnden

Hallo.

Ich habe wiedereinmal ein Problem mit XSLT. Ich habe versucht eine bedingte Sortierung einer Liste hinzubekommen.

<xsl:for-each select="item">
   xsl:choose
    <xsl:when test="$sort = 'date'">
     <xsl:sort order="descending" data-type="number" select="./date/year" />
     <xsl:sort order="descending" data-type="number" select="./date/month" />
     <xsl:sort order="descending" data-type="number" select="./date/day" />
    </xsl:when>
    <xsl:when test="$sort = 'typ'">
     <xsl:sort order="descending" data-type="text" select="./typ" />
    </xsl:when>
    <xsl:when test="$sort = 'title'">
     <xsl:sort order="descending" data-type="text" select="./title" />
    </xsl:when>
   </xsl:choose>
   ...
  </xsl:for-each>

Ergebnis:
  XSL element 'when' cannot contain element 'sort' at this point

So. und nun suche ich jemanden, der mir das mal erklärt und mir nen Lösungsvorschlag macht :P

Thx, Peter

--
Wer Rechtschreibfehler findet darf sie behalten.
  1. Hallo,

    Ich habe wiedereinmal ein Problem mit XSLT. Ich habe versucht eine bedingte Sortierung einer Liste hinzubekommen.

    Ergebnis:
      XSL element 'when' cannot contain element 'sort' at this point

    xsl:sort kann nur in apply-templates oder in for-each stehen.

    xsl:choose
       <xsl:when test="$sort = 'date'">
         <xsl:for-each select="item">
           <xsl:sort order="descending" data-type="number" select="./date/year" />
           <xsl:sort order="descending" data-type="number" select="./date/month" />
          <xsl:sort order="descending" data-type="number" select="./date/day" />
           </xsl:for-each>
        </xsl:when>

    etc.

    Grüße
    Thomas

  2. hallo peter,

    Ich habe wiedereinmal ein Problem mit XSLT. Ich habe versucht
    eine bedingte Sortierung einer Liste hinzubekommen.

    ist zwar etwas unstaendlicher, aber uebersichtlich: ich hatte
    auch mal dieses problem, und loeste es damit, dass ich mehrere
    templates definiert, und je nach sortierung ein anderes template
    aufgerufen habe. ich hoffe ich habe dir damit ein wenig
    weitergeholfen. wenn du die xsl-datei moechtes schreibe mir.
    gruss,

    michael