Re: sorting, xslt 2.0
| Newsgroups | gmane.text.xml.xsl.general.mulberrytech |
|---|---|
| Message-ID | <[email protected]> |
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 [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. > > --~---------------------------------------------------------------- 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] --~--