|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Sorting on two booleans
> 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
|
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
|






