[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] passing variable through to document() call.


Subject: Re: [xsl] passing variable through to document() call.
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 13 Aug 2003 16:33:24 -0400

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
Keywords