[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Integrated sort using different elements


Subject: Re: [xsl] Integrated sort using different elements
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 19 Feb 2009 10:19:50 -0500

At 2009-02-19 09:09 -0600, Quinn Dombrowski wrote:
I'm trying to figure out a way to sort by one of multiple elements, with descending priority.

You create a select expression that chooses the element you want in the presence or absence of other items.


I'm working with a TEI bibliography, and there's no single element that all the entries have. Ideally, I'd like to sort by monogr/author; but when that's not possible, by analytic/author; if not that, monogr/editor; then monogr/title; and so on down the line.

In XSLT 2.0, choose the first item in a sequence of many items, priority indicated by the order of your sequence:


<xsl:sort select="
 ( monogr/author, analytic/author, monogr/editor, monogr/title )[1]"/>

In XSLT 1.0 you might do something along the lines of:

<xsl:sort select="
monogr/author |
self::*[not(monogr/author)]/analytic/author |
self::*[not(monogr/author | analytic/author)]/monogr/editor |
self::*[not(monogr/author | analytic/author | monogr/editor)]/monogr/title"/>


I hope this helps.

. . . . . . . . . . Ken

--
Upcoming hands-on  XQuery, XSLT, UBL & code list training classes:
Brussels, BE 2009-03;  Prague, CZ 2009-03, http://www.xmlprague.cz
Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
Video lesson:    http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18
Video overview:  http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Male Cancer Awareness Nov'07  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


Current Thread
Keywords