Subject: Re: passing external parameter to template match
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Wed, 30 Jul 2003 11:10:48 +0200
|
"Adriaan Woerléé" <ade@xxxxxxx> wrote in message
news:37522.203.18.39.2.1059520262.squirrel@xxxxxxxxxxxxxxx
> Hi,
> I wanted to send an external paramater to the the template to create
> dynamic matching
>
> <xsl:param name="element" select="'default'"/>
> <xsl:template match="{$element}">
>
> but I get a TransformerException Error : illegal tokens $
>
> is there a better way to dynamically populate the 'match' attribute of
> template??
A match pattern cannot contain a xsl:variable reference.
There are two ways to do what you want:
1. Pure "push" style:
<xsl:template match = node()>
<xsl:if test="count(. | $element) = count($element)">
<!-- All processing here -->
</xsl:if>
</xsl:template>
2. Pull style:
<xsl:apply-templates select="$element"
mode="mySpecialParameterisedMode"/>
$element must be a node-set containing all nodes that must be matched.
In 1. we test if the current node is one of the elements in the $element
node-set and if so, process it.
In 2. we have a template that will only be used in a very special mode. In
this same mode we apply templates to all nodes contained in the $element
node-set.
=====
Cheers,
Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|