Re: sorting, xslt 2.0

"Dave Pawson [email protected]" <[email protected]> Tue, 16 Mar 2021 16:30:50 -0000
Newsgroups gmane.text.xml.xsl.general.mulberrytech
Message-ID <[email protected]>
On Tue, 16 Mar 2021 at 16:24, Michael Kay [email protected]
<[email protected]> wrote:

> In the rare cases where you can't, call out to a function: compute the sort key in a separate xsl:function, and call the function in xsl:sort/@select.

 so <xsl:sort select="dp:function(fr, fr/@sort)">

That sort of approach?

regards



>
> Michael Kay
> Saxonica
>
> > On 16 Mar 2021, at 16:08, Dave Pawson [email protected] <[email protected]> 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.
> >
> >
> 
>


-- 
Dave Pawson
XSLT XSL-FO FAQ.
Docbook FAQ.
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/3329386
or by email: [email protected]
--~--