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>
--~--