[xsl] a sorting conundrum

Subject: [xsl] a sorting conundrum
From: John Fitzgibbon <jfitzgibbon@xxxxxxxxxxxxxxxx>
Date: Thu, 03 Mar 2005 15:32:16 +0000

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?

Any suggestions would be most welcome.


John Fitzgibbon

Galway Public Library
Island House
Cathedral Square

p: 00 353 91 562471
f: 00 353 91 565039
w: http://www.galwaylibrary.ie

Ta eolas ata prmobhaideach agus rznda sa rmomhphost seo
agus aon iatan a ghabhann leis agus is leis an duine/na daoine
sin amhain a bhfuil siad seolta chucu a bhaineann siad.
Mura seolam thz, nml tz zdaraithe an rmomhphost ns aon iatan
a ghabhann leis a liamh, a chsipail na a zsaid.
Ma ta an rmomhphost seo faighte agat trm dhearmad,
cuir an seoltsir ar an eolas thrm aischur rmomhphoist
agus scrios ansin i le do thoil.

This e-mail and any attachment contains information which is
private and confidential and is intended for the addressee
only. If you are not an addressee, you are not authorised
to read, copy or use the e-mail or any attachment.
If you have received this e-mail in error, please notify
the sender by return e-mail and then destroy it.

Current Thread