RE: [xsl] date:add template

Subject: RE: [xsl] date:add template
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 4 Mar 2005 22:19:30 -0000
If you're using the constructor function xs:date() and the "as" attribute on
xsl:variable, then you're using an XSLT 2.0 processor, which means you don't
need the EXSLT date library: you can get tomorrow's date simply by doing

current-date() + xdt:dayTimeDuration('P1D')

Having said that, I don't know why it's running out of memory.

Michael Kay
http://www.saxonica.com/
 

> -----Original Message-----
> From: Breygin, Victor [mailto:Victor.Breygin@xxxxxxxxxxxxxxx] 
> Sent: 04 March 2005 22:09
> To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'
> Subject: [xsl] date:add template 
> 
> Hello,
> 
> can anyone suggest how to make this work?
> It seems to go into endless recursive loop and eventually 
> gets out of memory
> (regardless
> how much memory is given to JVM).  I would expect it computing the
> tomorrow's date.
> Am I missing something?
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> xmlns:xs="http://www.w3.org/2001/XMLSchema";  
> xmlns:date="http://exslt.org/dates-and-times";>
> 	
>   <xsl:import href="C:/SAXON/EXSLT/date/date.xsl" />
> 
> <xsl:template match="/">	
> 	
> 	 <xsl:variable as="xs:date" name="endDate">
> 					 <xsl:call-template 
> name="date:add">
>   					 <xsl:with-param 
> name="date-time"
> select="xs:date(date:date())" />
>   					   <xsl:with-param 
> name="duration">
>   				  			
> <xsl:call-template
> name="date:duration">
>           				    		 <xsl:with-param
> name="seconds" select="  60 * 60 * 24 " />
>         		  		  		
> </xsl:call-template>
> 
>         		  		   </xsl:with-param>  	        
> 					</xsl:call-template>
> 	 </xsl:variable>
> 	 
> 	<xsl:text>tomorrow's date is  </xsl:text> <xsl:value-of
> select="$endDate"></xsl:value-of>
> 
> </xsl:template> 
> 
> </xsl:stylesheet>
> 
> thanks in advance for your help,
> its greatly appreciated.
> 
> thanks
> victor

Current Thread