This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Passing a parameter from one matched template to another
- From: Joerg Heinicke <joerg dot heinicke at gmx dot de>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Wed, 15 May 2002 01:21:02 +0200
- Subject: Re: [xsl] Passing a parameter from one matched template to another
- References: <IEEIPEDDDLMPMCAA@mailcity.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
> <xsl:variable name="input"><ARE><YOU><NUTS></xsl:variable>
Is it <ARE/><YOU/><NUTS/> (example 1) or <ARE><YOU><NUTS/></YOU></ARE>
(example 2)?
Example 1:
<xsl:apply-templates select="vendor:node-set($input)/*[1]" />
<xsl:template match="ARE">
<xsl:param name="x" select="''"/>
<xsl:apply-templates select="following-sibling::*[1]">
<xsl:with-param name="x" select="anything-passed-to-template-YOU"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="YOU">
<xsl:param name="x" select="''"/>
<xsl:apply-templates select="following-sibling::*[1]">
<xsl:with-param name="x" select="anything-passed-to-template-NUTS"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="NUTS">
<xsl:param name="x" select="''"/>
</xsl:template>
Example 2:
<xsl:apply-templates select="vendor:node-set($input)" />
<xsl:template match="ARE">
<xsl:param name="x" select="''"/>
<xsl:apply-templates>
<xsl:with-param name="x" select="anything-passed-to-template-YOU"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="YOU">
<xsl:param name="x" select="''"/>
<xsl:apply-templates>
<xsl:with-param name="x" select="anything-passed-to-template-NUTS"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="NUTS">
<xsl:param name="x" select="''"/>
</xsl:template>
paul morgan schrieb:
> Is it possible to pass a parameter from one matched template to another?
>
> That is, with the following:
>
> <xsl:variable name="input"><ARE><YOU><NUTS></xsl:variable>
>
> <xsl:apply-templates select="vendor:node-set($input)" />
>
> I'd like each template that is matched to pass along a value (as determined by the matched template) to the next template that is matched.
>
> <xsl:template match="ARE">
> <xsl:param name="x" select="''"/>
> <!-- create some value that should be accessed by the
> next template matched -- in my example, "YOU" -->
> </xsl:template>
>
> <xsl:template match="YOU">
> <xsl:param name="x" select="''"/>
> <!-- create some value that should be accessed by the
> next template matched -- in my example, "NUTS" -->
> </xsl:template>
>
> <xsl:template match="NUTS">
> <xsl:param name="x" select="''"/>
> <!-- whatever -->
> </xsl:template>
>
> Thanks,
>
> Paul
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list