Re: [xsl] sorting, xslt 2.0

Subject: Re: [xsl] sorting, xslt 2.0
From: "David Carlisle d.p.carlisle@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 16 Mar 2021 16:15:44 -0000
possibly though, use a more conventional spelling of select

On Tue, 16 Mar 2021 at 16:13, David Carlisle <d.p.carlisle@xxxxxxxxx> wrote:

> lose the xsl:variable and use
>
> <xsl:sort sect="( fr/@sort, lower-case(substring(fr,1,1)))[1]"/>
>
> On Tue, 16 Mar 2021 at 16:08, Dave Pawson dave.pawson@xxxxxxxxx <
> xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> 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: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
>>
>>
>> --
>> Dave Pawson
>> XSLT XSL-FO FAQ.
>> Docbook FAQ.

Current Thread