Subject: Re: [xsl] What is wrong with this? From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Tue, 22 Jan 2002 22:28:39 +0000 |
Hi Khalid, > can some one please let me know what is wrong with the code below. > > <xsl:template match = "distribution-transport-load"> > <xsl:call-template name = "get-supply-total"> > <xsl:with-param name = "supplyroot" select = "."/> > </xsl:call-template> > </xsl:template> Here, you pass the get-supply-total template a $supplyroot parameter with a value of a node set containing a single node - the context node. > <xsl:template name = "get-supply-total"> > <xsl:param name = "supplyroot"/> > <xsl:choose> > <xsl:when test = "$supplyroot"> > <xsl:variable name = "first" select= "$supplyroot[1]"/> > <xsl:variable name = "remaining-total"> > <!-- for some reasons it can not gets in this block of code,there fore does > not increment the total > --> > <xsl:call-template name = "get-supply-total"> > <xsl:with-param name = "supplyroot" select = "$supplyroot[position()!=1]"/> > </xsl:call-template> > </xsl:variable> > <xsl:value-of select = "$first/load-quantity + $remaining-total"/> > </xsl:when> > <xsl:otherwise>0</xsl:otherwise> > </xsl:choose> > </xsl:template> Whenever this template is called from the distribution-transport-load template, the $supplyroot parameter is a node set containing a single node. In the above recursive call, you pass a new value for the $supplyroot parameter - the rest of the nodes in the $supplyroot node set (after the first one). Since the $supplyroot parameter only ever contains a single node, you pass an empty node set as the value of the $supplyroot parameter, which means that this recursive call always returns the value 0 (from the xsl:otherwise). Your template would work just fine if the $supplyroot parameter were passed a node set that contained more than one node. Unfortunately, I can't work out what you should be setting it to without seeing your XML document or the rest of your stylesheet... But actually, there's nothing in your template that I can see that would stop you from using the sum() function instead, something like: sum($supplies/load-quantity) Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] What is wrong with this?, Khalid | Thread | [xsl] xsl:fo nested tables problem, Schwarz, Kevin |
[xsl] What is wrong with this?, Khalid | Date | [xsl] xsl:fo nested tables problem, Schwarz, Kevin |
Month |