[Home] [By Thread] [By Date] [Recent Entries]
Hello list,
I am having trouble applying xsl:if statements when I have templates within my XSLT document. Below is a summary of what I am trying to accomplish. The main question I have is how do I sort using an if, and then sort again using a template? I pass in a parameter called "currentDate" which holds the current date. I then wish to use an xsl:if statement to determine which xml items are not past due. Using the if, as I understand acts as a boolean statement, those that fit the bill stay and those that do not are nixed. After the if statement I try to sort my items by date using what seems like a common way to sort by date using the substring method. This works flawlessly until I try to nest it in my if statement. Once the dates are sorted I wish to display the first five sorted items. I have done this using a position() statement in the past. Is there a better way to handle this? --------------------------------------- Abridged version of xml file -------------cal.xml -------------- <calendar> <event> <date>10/13/05</date> <title>City Council Meeting</title> <time>8pm</time> </event> </calendar> ---------------------------------------- Important parts of xslt file ---------------cal.xslt--------------- <!--Declare XSL Parameters --> <xsl:param name="currentDate"/> <xsl:if test="/calendar/event/date/text() >= $currentDate"> </xsl:if> <xsl:template match="calendar"> <xsl:apply-templates> <!--year--> <xsl:sort select="substring(date, 7,4)"/> <!--month--> <xsl:sort select="substring(date, 1, 2)"/> <!--day--> <xsl:sort select="substring(date, 3, 2)"/> </xsl:apply-templates> </xsl:template> <xsl:template match="event"> Date: <xsl:apply-templates select="date"/> Title: <xsl:apply-templates select="title"/> Time: <xsl:apply-templates select="time"/> </xsl:template> Thank you for your help. Max Bronsema
|

Cart



