xsl-list
[Top] [All Lists]

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

2006-11-20 17:53:16
I'm also learning XSLT and XPath, it definitely needs to be understood from 
scratch even though I have background knowledge of several other programming 
languages. 
XSLT and XPath are quite different but very interesting.

I started with these tutorials here, they give a good foundation, but they're 
terse.
http://www.w3schools.com/xsl/
http://www.w3schools.com/xpath/

Practicing on smaller and simpler examples on your own also helps in 
discovering and understanding it. I'm now reading few books on XSLT2.0 to 
understand it properly.

But if you have any questions big or small don't hesitate to ask here, if they 
are not already answered.

-Cheers
Rashmi

----- Original Message ----
From: Max Bronsema <max(_dot_)bronsema(_at_)gmail(_dot_)com>
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Sent: Monday, November 20, 2006 6:05:37 PM
Subject: Re: [xsl] sort by xsl:if and then sort using templates?


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>
--~--

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

--~------------------------------------------------------------------
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>
--~--