|
Subject: [xsl] Dynamically define number of xsl:sort stmts using parameters From: "Angela Williams" <Angela.Williams@xxxxxxxxxxxxxxxxxx> Date: Tue, 27 Mar 2007 10:28:59 -0500 |
Good morning, list -
My requirement is that I have an unknown number of sort conditions that I want
to apply to a for-each, for-each-group, or apply-templates construct.
Is there a way to dynamically define the number of <xsl:sort> statements to
use based on selecting parameters from an xml?
For example, <list> might have 0 to n <sort/> nodes:
<list>
<address>
<name/>
<street/>
<city/>
</address>
<!-- more address nodes -->
<sort order="1">name</sort>
<sort order="2">city</sort>
<!-- might have more sort nodes -->
</list>
If I have no nodes, I would want to omit the <xsl:sort> statement, etc...
I can think of the following theoretical solutions, but I don't know if they
are even possible:
1. (I know this doesn't work) Create multiple variables to evaluate the sort
value and then hardcode the same number of <xsl:sort> statements that may be
evaluating a null value for @select:
<snip>
<xsl:variable name=sort1 select="sort[@order="1"]/>
<xsl:variable name=sort2 select="sort[@order="2"]/>
<xsl:variable name=sort3 select="sort[@order="3"]/> <!-- empty -->
</snip>
<snip>
<xsl:for-each select="address">
<xsl:sort select="saxon:evaluate($sort1)/>
<xsl:sort select="saxon:evaluate($sort2)/>
<xsl:sort select="saxon:evaluate($sort3)/> <!-- error here -->
</xsl:for-each>
</snip>
2. Use xsl to select the sort nodes and then dynamically write and output the
template and for-each loop that uses the appropriate number of sort statements
- then how would I call it in the same stylesheet?
3. Write multiple templates using 0 to n sort statements and then call the
appropriate template based on the number of <sort/> nodes found? This doesn't
sound very elegant or practical to me, but might be the simplest...
Any suggestions?
Thanks!
Angela Williams
Channel Developer
The 401k Company
512-344-1547
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Need help with sorting., Michael Kay | Thread | Re: [xsl] Dynamically define number, Abel Braaksma |
| RE: [xsl] Need help with sorting., Austin, Darrel | Date | Re: [xsl] Need help with sorting., Abel Braaksma |
| Month |