xsl-list
[Top] [All Lists]

Re: [xsl] variable in xsl:template match

2007-04-26 07:41:41
Variables are not allowed to be used in the match attribute of a template.

 Ref. XSLT 1.0 section 5.3:

  It is an error for the value of the match attribute to contain
  a VariableReference.

You will have to match on a more general expression and then do a variable test within the template rule. Using a layered stylesheet with <xsl:import> you can match on the general expression in the importing stylesheet, and if the variable tests false do an <xsl:apply-imports/> to use the imported stylesheet.

Alternatively you could engage modes and re-apply the generally-matched node in a mode in order to engage other template rules.

I hope this helps.

. . . . . . . . . Ken

At 2007-04-26 10:35 -0400, Steve wrote:
/root/node()[name() = $target]/child

On 4/26/07, Garvin Riensche <g(_dot_)riensche(_at_)gmx(_dot_)net> wrote:
Hello,

Im am wondering if it is possible to pass an xpath expression (or part
of it) from the commandline to the match attribute of a template.

What I am thinking about is something like to following. If I call the
parser with

saxon target=position input.xml styleshee.xsl

And I have a template with something similar to

<xsl:template match="/root/$target/child">

I want the Xpath expression to be evaluated as "/root/position/child".

Any help will be appreciated.

Regards,
Garvin


--
World-wide corporate, govt. & user group XML, XSL and UBL training
RSS feeds:     publicly-available developer resources and training
G. Ken Holman                 mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Cancer Awareness Aug'05  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--