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

RE: populating table with sorted elements

Subject: RE: populating table with sorted elements
From: cknell@xxxxxxxxxx
Date: Sat, 29 Jul 2006 12:09:32 -0400
populating table
It's hard to see how you would do this in one step in XSLT 1.0.

What you need is a tree of sorted nodes to which you will apply the formatting template. 

So:
1) Produce a tree of nodes sorted in the order you want.
2) Apply the formatting template to the tree of sorted nodes.

In XSLT 1.0 you will either break the process into two steps, producing an intermediate document containing the sorted nodes, then applying the second stylesheet to the intermediate document, or use a node-set extension (details depend on which XSLT processor you are using) which will produce an in-memory tree of nodes that you can apply the template to.

In XSLT 2.0 you could simply create a variable to hold the tree of sorted nodes without requiring an extension or an intermediate document.

The EXSLT library may contain something useful. http://www.exslt.org/exsl/functions/node-set/index.html
-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     Christian Marc Schmidt <christianmarc@xxxxxxxxx>
Sent:     Sat, 29 Jul 2006 10:43:07 -0400
To:       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject:   populating table with sorted elements

I am a newcomer to XML/XSLT and am struggling
with a bit of code in which I am attempting to populate
a six-column table, while allowing an xsl:sort.

Here is a section of my current code:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

..

<table width="970" border="0" cellspacing="0" cellpadding="0">
    <xsl:for-each select="xml/work/*[position() mod 6 = 1]">
        <tr>
            <xsl:apply-templates
select=".|following-sibling::*[position() < 6]" />
        </tr>
    </xsl:for-each>
</table>

..

The XML structure I've set up looks like this:

<xml>
    <work>
        <piece>
        </piece>
         <piece>
        </piece>
        ...
    </work>
</xml>

How would I go about adding sort functionality? It seems like it would
be easy enough, yet all of my attempts so far have failed...

Any suggestions would be much appreciated!


Christian

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.