This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Change the value of a parameter in a template
- To: "'xsl-list at mulberrytech dot com'" <xsl-list at mulberrytech dot com>
- Subject: RE: Change the value of a parameter in a template
- From: Kay Michael <Michael dot Kay at icl dot com>
- Date: Tue, 14 Nov 2000 09:33:15 -0000
- Cc: mikael granhed <mikael dot granhed at exertus dot se>
- Reply-To: xsl-list at mulberrytech dot com
You are trying to write a template as a function that returns a selected
node. Templates don't do that: they write output to trees.
To find a node, use an XPath expression, something like
//wc:INSTANCE[Left=@article]/Right
You have to write this inline.
If you don't like this you might like to look at Saxon's <saxon:function>
which allows you to write extension functions in XSLT.
Mike Kay
> 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'/>
>
> </xsl:if>
> </xsl:for-each>
> </xsl:template>
>
> Then I want to access the parameter "find", with its new
> value, from the
> calling template "Relation".
> Does anybody know how to do that?
>
> Regards
> Fredric
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list