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

RE: Passing a parameter from one matched template to a

Subject: RE: Passing a parameter from one matched template to another
From: "Stuart Celarier" <stuart@xxxxxxxxxxx>
Date: Tue, 14 May 2002 16:14:37 -0700
passing parameters to shtml
Paul,

You pass parameters in XSLT using one or more <xsl:with-param> elements,
which can occur as content within the <xsl:apply-templates> and
<xsl:call-template> elements [1]. Also, <xsl:variable> elements declared
as top-level elements (i.e., children of <xsl:stylesheet>) are
accessible within all templates.

<xsl:template match="ARE">
  <xsl:apply-templates select="YOU">
    <xsl:with-param name="you-parameter">
      some content from the ARE template
    </xsl:with-param>
  </xsl:apply-templates>
</xsl:template>

<xsl:template match="YOU">
  <xsl:param name="you-parameter"/>
  ...
</xsl:template>

Is that what you're looking for?

Couple of nits:

The variable you gave does not contain well-formed XML. You probably
meant something like <ARE><YOU></NUTS></YOU></ARE>, right?

For compatibility reasons [2], the string '--' must not appear in an XML
comment. Ouch!

Beware of the parameter in your example, <xsl:param name="x"
select="''"/>. Have you figured out what the default value of $x is? Is
that what you intended?

Cheers,
Stuart


[1] XSLT 1.0, section 11.6, Passing Parameters To Templates,
http://www.w3.org/TR/xslt#element-with-param

[2] XML 1.0, section 2.5, Comments,
http://www.w3.org/TR/2000/REC-xml-20001006#sec-comments

-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of paul morgan
Sent: Tuesday, May 14, 2002 15:36
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject:  Passing a parameter from one matched template to another

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



________________________________________________________
Outgrown your current e-mail service?
Get a 25MB Inbox, POP3 Access, No Ads and No Taglines with LYCOS MAIL
PLUS.
http://login.mail.lycos.com/brandPage.shtml?pageId=plus

 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

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.