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.
|