[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
At 04:15 PM 4/29/2002, you wrote:
I think the answer depends on what the tests are (e.g. What is $prevnode?). If your test is based on some value of the nodes selected by the for-each, then you're asking to re-order everything after you get and test the first item. This is not good. The workaround here is to select items based on that value in the original for-each selection.
If, on the other hand, your tests are based on some external value, it's pretty easy. You just create multiple for-each's and only execute the one you need.
<xsl:choose>
<xsl:when test="$prevnode='criteriavalue1'">
<xsl:for-each select="somenode">
<xsl:sort order="ascending" select="node_to_be_sorted"/>
</xsl:for-each>
</xsl:when>
<xsl:when test="$prevnode='criteriavalue2'">
<xsl:for-each select="somenode">
<xsl:sort order="descending" select="other_node_to_be_sorted"/>
</xsl:for-each>
</xsl:when>
</xsl:choose>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Re: [xsl] To simulate SORT inside a xsl:choose condition
Subject: Re: [xsl] To simulate SORT inside a xsl:choose condition From: Greg Faron <gfaron@xxxxxxxxxxxxxxxxxx> Date: Mon, 29 Apr 2002 16:38:42 -0600 |
At 04:15 PM 4/29/2002, you wrote:
Hi all ,
I know that the rule to sort should be immediately after <xsl:for-each >
I am in a situation where i have to read the criteria to sort from some some node in the beginning of XML
and based on which i need to make a decision to sortBY corresponding node somewhere down the line....
But as you know the following way doesnt work ...
<xsl:for-each select="somenode"> <xsl:choose> <xsl;when test="$prevnode = 'criteriavalue' "> <xsl:sort order="ascending" select="node_to_be_sorted"/> </xsl:when> </xsl:choose>
</xsl:for-each>
Note: dont worry about syntax check on this ...
Is there a way to sneak around and get this Sorting to work based on some criteria ...Or any other work arounds, suggestions?
I think the answer depends on what the tests are (e.g. What is $prevnode?). If your test is based on some value of the nodes selected by the for-each, then you're asking to re-order everything after you get and test the first item. This is not good. The workaround here is to select items based on that value in the original for-each selection.
If, on the other hand, your tests are based on some external value, it's pretty easy. You just create multiple for-each's and only execute the one you need.
<xsl:choose>
<xsl:when test="$prevnode='criteriavalue1'">
<xsl:for-each select="somenode">
<xsl:sort order="ascending" select="node_to_be_sorted"/>
</xsl:for-each>
</xsl:when>
<xsl:when test="$prevnode='criteriavalue2'">
<xsl:for-each select="somenode">
<xsl:sort order="descending" select="other_node_to_be_sorted"/>
</xsl:for-each>
</xsl:when>
</xsl:choose>
Greg Faron Integre Technical Publishing Co.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] To simulate SORT inside a xsl, KUMAR NINGASHETTY | Thread | RE: [xsl] To simulate SORT inside a, Michael Kay |
Re: [xsl] javascript in XSLT, Greg Faron | Date | Re: [xsl] To simulate SORT inside a, Joerg Heinicke |
Month |