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:14:22 -0000
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