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

Re: passing variable through to document() call.

Subject: Re: passing variable through to document() call.
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 13 Aug 2003 16:33:24 -0400
passing variable to xml
At 2003-08-13 21:58 +0200, Eric Smith wrote:
I have a parent document with code like:
<doc>
<render2web/> <!-- this sets the variable -->
<lookup about="consumer"/>
</doc>

And in the xsl:
<xsl:apply-templates select="document('/home/eric/lookup.xml')/doc/topic[@about=$about]"/>


Problem is that when applying the templates in this call above, the variable set
in the xml above is not seen.

Yes, Eric ... because the scope of a variable is only its following siblings and their descendants. If you are setting any variable in the template rule for <render2web/> then that variable's scope is only within that template rule.


How do I implement this

You can pass a parameter during an apply-template instruction and pick up the parameterized variable in the template rule that is triggered. You don't show your variable-setting code, but I'm assuming something like the following might help:


  <xsl:template match="lookup">
    <xsl:variable name="about" select="@about"/>
    <xsl:apply-templates
     select="document('/home/eric/lookup.xml')/doc/topic[@about=$about]">
      <xsl:with-param name="webSignal" select="../render2web"/>
    </xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="topic">
    <xsl:param name="webSignal"/>
    <xsl:if test="$webSignal">
      <!--do something here-->

I hope this helps.

........................ Ken


-- Instructor-led on-site corporate, government & user group training for XSLT and XSL-FO world-wide; please contact us for the details; Next public European delivery: 3-day XSLT/2-day XSL-FO 2003-09-22

G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6                       Definitive XSLT and XPath
ISBN 0-13-140374-5                               Definitive XSL-FO
ISBN 1-894049-08-X   Practical Transformation Using XSLT and XPath
ISBN 1-894049-11-X               Practical Formatting Using XSL-FO
Member of the XML Guild of Practitioners:     http://XMLGuild.info
Male Breast Cancer Awareness  http://www.CraneSoftwrights.com/s/bc


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.