Subject: RE: passing parameter to template
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Wed, 2 Jul 2003 21:51:10 +0100
|
The apply-templates on document() is not going to invoke the template
with match="item", because document() is a document (root) node and
"item" matches an element. So if it's being called at all then the call
is indirect, via a built-in template; and built-in templates do not pass
their parameters on.
Michael Kay
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Fei Zheng
> Sent: 02 July 2003 18:21
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: passing parameter to template
>
>
> Hi all,
>
> I am having a problem with passing a paramter to template. It
> works without using a second xml. Do you know how to code it
> working with a second xml?
>
> This is code which has no value pass into template. Anything
> I am doing wrong? Thanks!
>
> <xsl:for-each select="tech">
> <xsl:variable name="current-tech" select="@descr"/>
> <xsl:apply-templates select="document('report.xml')"
> mode="report">
> <xsl:with-param name="current" select="$current-tech"/>
> </xsl:apply-templates>
> </xsl:for-each>
>
> <xsl:template match="item" mode="report">
> <xsl:param name="current" />
> <xsl:if test="($current = metadata/technology)">
> <xsl:value-of select="content/company/." /><br/>
> </xsl:if>
> </xsl:template>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|