[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: What is wrong with this?

Subject: Re: What is wrong with this?
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Tue, 22 Jan 2002 22:28:39 +0000
Re:  What is wrong with this?
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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.