"Adriaan Woerléé" <ade(_at_)ip9(_dot_)org> wrote in message
news:37522(_dot_)203(_dot_)18(_dot_)39(_dot_)2(_dot_)1059520262(_dot_)squirrel(_at_)pop(_dot_)jtan(_dot_)com(_dot_)(_dot_)(_dot_)
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