|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: a sorting conundrum
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








