|
Subject: Re: [xsl] a sorting conundrum From: Kevin Rodgers <kevin.rodgers@xxxxxxx> Date: Thu, 3 Mar 2005 08:43:50 -0700 |
John Fitzgibbon writes:
> I am attempting to sort an a list of personal names. All of the names
> consist of either a first name followed by a last name or of a last name
> only (there are no middle names). Both parts of the name, when present,
> are enclosed within the one tag (span) which has a class='person'
> attribute, the same tag is used to enclose a last name only. I am
> attempting to sort by last name like so
>
> <xsl:for-each select="html/body//span[@class='person']">
> <xsl:sort select="substring-after(., ' ')"/>
> <xsl:sort select="."/>
> <xsl:sort select="substring-before(., ' ')"/>
>
> The problem is that names consisting of a last name only appear first in
> my alphabetical sequence and are sorted; these are followed by names
> with a first name and a last name and these are also sorted. I require
> one alphabetical list rather than two.
>
> Can this be done in one fell swoop, without having to write an XSL style
> sheet for the file consisting of two alphabetical sequences?
How about (in XSLT 2.0):
<xsl:sort select="if (contains(., ' ')
then substring-after(., ' ')
else ."/>
<xsl:sort select="if (contains(., ' ')
then substring-before(., ' ')
else ''"/>
--
Kevin Rodgers
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] a sorting conundrum, John Fitzgibbon | Thread | RE: [xsl] a sorting conundrum, Michael Kay |
| RE: [xsl] xsl:template having both , Mukul Gandhi | Date | [xsl] XML to XML transformation and, c p |
| Month |