RE: Change the value of a parameter in a template

Subject: RE: Change the value of a parameter in a template
From: Ed Staub <estaub@xxxxxxxx>
Date: Mon, 13 Nov 2000 16:09:58 -0500
You can't change the value of a parameter or variable.

xsl:param is only allowed at top-level or at the beginning of a template;
your usage is illegal.

If you want to get the result back from a template into a variable, emit the
result into the output stream within the template, and then use something

<xsl:variable name="find">
	<xsl:call-template name="findRelation">
		<xsl:with-param name="article" select="$article"/>

See Michael Kay's "XSLT" book, around page 545 ("Computational
Stylesheets"); it covers this area very well.

-Ed Staub

-----Original Message-----
From: fredric larsson [mailto:fredric.larsson@xxxxxxxxxx]
Sent: Monday, November 13, 2000 10:52 AM
To: xsl-list@xxxxxxxxxxxxxxxx
Cc: mikael granhed
Subject: Change the value of a parameter in a template 

I have got the same problem as Laurent has in his mail dated 6 Nov 2000
08:46:48 +0000 from e-mail address: "Ext.ZXSPRCR2A015@xxxxxxxxxx".
Here is my problem:
I want to compare XML-data with a value of a parameter in my XSL-stylesheet.
XML-data looks like this:


I've got a template, called "Relation", with two parameters:

<xsl:param name="article" select='OBID'/>
<xsl:param name="find"/>

I call a new template called "findRelation" and apply the parameters:

<xsl:call-template name="findRelation">
<xsl:with-param name="article" select="$article"/>
	<xsl:with-param name="find" select="$find"/>

In the template "findRelation" I compare the parameter "article" with the
XML-data in a loop ("for-each").
When an element, <Left>, is equal to the parameter "article" I store the
<Right> element in the parameter "find ": 

<xsl:template name="findRelation">
	<xsl:param name="article"/>
	<xsl:param name="find"/>
	<xsl:for-each select="//wc:INSTANCE"> 
		<xsl:if test="Left=$article">
			<xsl:param name="find" select='Right'/>		 

Then I want to access the parameter "find", with its new value, from the
calling template "Relation". 
Does anybody know how to do that? 

 XSL-List info and archive:

 XSL-List info and archive:

Current Thread