[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Sorting on two booleans

Subject: Re: Sorting on two booleans
From: Joelle Tegwen <tegwe002@xxxxxxx>
Date: Thu, 26 Feb 2009 11:54:59 -0600
Re:  Sorting on two booleans
That gives me
active, not published
active, published
not active, not published
not active, published

But I need the last two reversed.
not active, published
not active, not published

Thanks
Joelle

Michael Kay wrote:
I've got a document that looks like this:
<projects>
    <project active="1" published="1">stuff</project>
    <project active="1" published="0">stuff</project>
    <project active="0" published="1">stuff</project>
    <project active="0" published="0">stuff</project> </projects

And I need to be able to sort them (on the fly - it's part of a sortable table in html) in this order and the reverse:
active, not published
active, published
not active, published
not active, not published.

So your major sort key is @active (true<false) and your minor sort key is @published (false<true).

That's

<xsl:for-each select...>
  <xsl:sort select="@active" data-type="number" order="descending"/>
  <xsl:sort select="@published" data-type="published" order="ascending"/>

For the reverse order, flip all the order="" attributes.

Michael Kay
http://www.saxonica.com/


I've tried all kinds of ways to sort them to get this to happen including brute force:
<xsl:for-each select="project">
<xsl:sort select="@active=1 and @published=0" order="ascending"
data-type="number"/>
<xsl:sort select="@active=1 and @published=1" order="ascending"
data-type="number"/>
<xsl:sort select="@active=0 and @published=1" order="ascending"
data-type="number"/>
<xsl:sort select="@active=0 and @published=0" order="ascending"
data-type="number"/>
<xsl:copy-of select="."/>
</xsl:for-each>



Nothing works. It always comes out with at least one in the wrong spot.


Could someone point me in the right direction? Help me understand what I'm missing about how sort works?

Thanks much in advance
Joelle

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.