RE: [xsl] How to return values from sub-template?

Subject: RE: [xsl] How to return values from sub-template?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 1 Dec 2004 11:24:02 -0000
In XSLT 1.0 your only option is to capture the tree fragment created by the
template in a variable using

<xsl:variable>
  <xsl:call-template/>
</xsl:variable>

XSLT 2.0 provides functions as an alternative to named templates. You can
call stylesheet functions from XPath, enabling:

<xsl:function name="f">...</xsl:function>

<xsl:variable name="v" select="f(....)"/>

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

> -----Original Message-----
> From: Matt Adams [mailto:mattad@xxxxxxxxx] 
> Sent: 01 December 2004 10:45
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] How to return values from sub-template?
> 
> Sorry for this newbie question but I didn't found a hint in 
> tutorials on how to return
> back parameter values from sub-templates. Assume the 
> following situation.
> I want to pass back the boolean (or other values in other 
> scenarios) value if the attribute "age" 
> exists in a node "myelement" with the attribute name="karl". 
> 
> Yes, I know, THIS sample could be coded easier within
> one template but my sample is only a simplified version for a 
> complex scenario
> where two templates are required.
> 
> Again, how can I access the value of the variable myval from 
> the calling template?
> 
> Thank you
> Matt
> 
> <xsl:template match="/">
>    <xsl:call-template name="subtemp">
>      <xsl:with-param name="parm" select="//myelement[@name = 
> 'karl']" />
>    </xsl:call-template>
>    Age exists=<xsl:value-of select="$myval" />  <!-- does not work -->
> </xsl:template>
> 
> <xsl:template name="subtemp">
>   <xsl:param name="parm" />
>     Hello
>   <xsl:variable name="myval" select="exist(@age)" />
>   return $myval
> </xsl:template>
> 		
> -- 
> ___________________________________________________________
> Sign-up for Ads Free at Mail.com
> http://promo.mail.com/adsfreejump.htm

Current Thread