Re: [xsl] sorting, xslt 2.0

Subject: Re: [xsl] sorting, xslt 2.0
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 16 Mar 2021 16:15:03 -0000
On 16.03.2021 17:08, Dave Pawson dave.pawson@xxxxxxxxx wrote:
xml

<term>
<fr sort="">sourire</fr>
...
   </term>

context is term
I want to sort on fr/@sort
   or (if empty)
<xsl:value-of select="(lower-case(substring(fr,1,1)))"/>

error XTSE0010 Within xsl:for-each, xsl:sort elements must come before
other instructions

<xsl:for-each select="term">

<xsl:sort select="if (normalize-space(fr/@sort)) then fr/@sort else lower-case(substring(fr, 1, 1))"/>


    <xsl:variable name='sort'>
     <xsl:choose>
       <xsl:when test="fr/@sort">
<xsl:value-of select="fr/@sort"/>
       </xsl:when>
       <xsl:otherwise>
<xsl:value-of select="(lower-case(substring(fr,1,1)))"/>
</xsl:otherwise>
     </xsl:choose>
     </xsl:variable>


<xsl:sort select="$sort"/>



Any suggestions for a workaround please?


TiA

Current Thread