[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Integrated sort using different elements
> From: G. Ken Holman [mailto:gkholman@xxxxxxxxxxxxxxxxxxxx] > Sent: Thursday, February 19, 2009 10:20 AM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: Integrated sort using different elements > > 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 think for XSLT 1.0 you can simplify that select to: <xsl:sort select="(monogr/author|analytic/author)[1]"/> which should also work in XSLT 2.0 without using a sequence. Andy.
|
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
|