[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Choosing different sorts
Andrew,
At 04:07 PM 2/11/2003, you wrote: So how can I sort by a variable that hasn't been created or by a value that needs to be calculated when the variable can't be global when the sort line comes first? You can't. A proper solution would require two passes: the first to generate the values on which you want to sort; the second to do the sorting. Now, if you happen to be able to express the logic that generates the sort value in a *single* XPath expression, you could load it into the sort in its entirety. Fortunately for you, this may just be possible: The number() function turns a Boolean true() into the value "1", false() into "0". So you could do <xsl:sort select="(number(substring(@url, (string-length(@url) - string-length('index.html'))+1='index.html')+1)*@weight"/> (Translated into English: the equality test returns a Boolean which becomes 1 if true, 0 if false. 1 is added to this value, and the sum, 2 or 1, is multiplied by the @weight attribute of the context node.) See if that works --! but if it does and you use it, do the downstream maintainer a favor, and include a comment to explain it. ;-> Cheers, Wendell
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
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
|