RE: [xsl] Parameter problem

Subject: RE: [xsl] Parameter problem
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Thu, 2 Oct 2003 15:28:49 +0100
Does $firstN have a value in the PartyList/When [1] template?
Is the PartyList/When [last()] template actually being called?

If so, something very odd is going on. Tell us which processor you are
using, and post a complete stylesheet + source document so we can debug
it for you.

Incidentally, the match="PartyList/When[last()]" is potentially very
expensive (though it all depends on the optimizer), and not really
necessary here. I would do all the work in one template myself.

Michael Kay

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Marsha Salo
> Sent: 02 October 2003 13:00
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] Parameter problem
> 
> 
> Hi Dave
> 
> i have made the changes as you have said,
> 
> 	<xsl:template match="PartyList/When [last()]">
> 
> 		<xsl:param name = "first"/>
> 		<xsl:param name = "last"  select="@Attendance"/>
> 
> 		<xsl:variable name="difference" select = "$last -
> $first"/>
> 		<TD><xsl:value-of select="$first"/></TD>
> 		<TD><xsl:value-of select="$last"/></TD>
> 		<TD><xsl:value-of select="$difference"/></TD>
> 	
> 	</xsl:template>
> 
> 	<xsl:template match="PartyList/When [1]">
> 
> 		<xsl:variable name="firstN"><xsl:value-of 
> select="@Attendance"/></xsl:variable>
> 		<TD><xsl:value-of select="$firstN"/></TD>
> 	
> 		<xsl:apply-templates 
> select="following-sibling::When [last()]">
> 			<xsl:with-param name="first" select="$firstN"/>
> 		</xsl:apply-templates>
> 
> 	</xsl:template>
> 
> but the parameter 'first' in template PartyList/When [last()] 
> still does not have a value. And difference is NaN.
> 
> marsha
> 
> -----Original Message-----
> From: David Carlisle [mailto:davidc@xxxxxxxxx]
> Sent: Thursday, October 02, 2003 1:30 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] Parameter problem
> 
> 
> 
> <xsl:template match="PartyList/When [1]">
> here your current node is a When element
> so here
> <xsl:apply-templates select="PartyList/When [last()]">
> you are selecting a When grandchild of the current When 
> element. i suspect that you don't want that, you want your 
> youngest sibling so that's <xsl:apply-templates 
> select="following-sibling::When [last()]">
> 
> Incidentally don't do
> 	<xsl:param name = "last"><xsl:value-of 
> select="@Attendance"/></xsl:param>
> 
> or
> 	<xsl:variable name="difference"><xsl:value-of select = 
> "$last - $first"/></xsl:variable>
> 
> or 
> 
> <xsl:with-param name="first"><xsl:copy-of 
> select="$firstN"/></xsl:with-param>
> 
> It makes the system work much harder than necessary.
> 
> 
> just use 
> 
> 
> 	<xsl:param name = "last" select="@Attendance"/>
>         <xsl:variable name="difference" select = "$last -$first"/>
>        <xsl:with-param name="first" select="$firstN"/>
> 
> David
> 
> ______________________________________________________________
> __________
> This e-mail has been scanned for all viruses by Star 
> Internet. The service is powered by MessageLabs. For more 
> information on a proactive anti-virus service working around 
> the clock, around the globe, visit: http://www.star.net.uk 
> ______________________________________________________________
> __________
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread