Subject: Re: [xsl] sorting, xslt 2.0 From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 16 Mar 2021 16:24:44 -0000 |
As David C and Martin suggest, write the sort key computation as a single XPath expression if you can. 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. Michael Kay Saxonica > On 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] sorting, xslt 2.0, Dave Pawson dave.paw | Thread | Re: [xsl] sorting, xslt 2.0, Michael Kay mike@xxx |
Re: [xsl] sorting, xslt 2.0, Dave Pawson dave.paw | Date | Re: [xsl] sorting, xslt 2.0, Dave Pawson dave.paw |
Month |