Subject: RE: 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: 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
|