xsl-list
[Top] [All Lists]

Re: [xsl] sort by xsl:if and then sort using templates?

2006-11-20 16:05:57
Thank you for the guidance Rashmi and David,

I seem to not be able to wrap my head around how the XSLT processor
works, I will be doing some reading and then getting back at this
problem.

Thanks again,

Max Bronsema


On 11/20/06, David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk> wrote:

xsl:sort have to be direct children of xsl:for-each (or
xsl:aply-templates) you can not nest in xsl:if (or anything else)
Just put the test on your select predicate or outside the xsl:apply-templates

It's a bit hard to show exactly what you need to do as I think you over
trimmed your stylesheet, but in general rather than


<xsl:apply-templates>
<xsl:if test="something">
<xsl:sort ..../>
</xsl:if>
</xsl:apply-templates>

do either

<xsl:apply-templates select="*[something]>
<xsl:sort.../>
</xsl:sort>

or

<xsl:choose>
<xsl:when test="something">
<xsl:apply-templates>
<xsl:sort ..../>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>

depending on what you want to do if the predicate is false (no output,
or no sorting, respectively)

David






--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


                
         Reply          
Reply to all Reply to allForward Forward Print Add Rashmi to Contacts
list Delete this message Report phishing Show original Message text
garbled?
        Rashmi Rubdi <dev_subscriptions(_at_)yahoo(_dot_)com>     
to xsl-list
        
show details
         12:53 pm (2 hours ago)
Which version of XSLT/XPATH? I dont think you can compare dates with >
in XPATH1.0

You can't nest xsl:sort inside xsl:if.
xsl:if can only be nested under <xsl:apply-templates> and <xsl:for-each>

I think if you represent dates in the standard format for example:
2005-05-07T19:30:00  instead of 05/07/2005 you can simply sort dates
without having to extract the substrings of year, month and day with
reference to the code snippet you have provided.

like this:
<xsl:apply-templates>
      <xsl:sort select="date"/>
</xsl:apply-templates>

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--