saxon:evaluate allows you to use variables $p1...$p9 and to bind these in
the call:
normalize-space(concat($p1/Caption,' ',$p2/Caption))
saxon:evaluate(Caption, $parentnode, $tablenode)
The reason that the dynamic expression can't evaluate XSLT variables
directly is that the Saxon optimizer potentially looks at all the places
where a variable is used and makes decisions accordingly: for example, if
there is only one reference then the variable may be "inlined". This kind of
optimization isn't possible unless all references to the variable are
statically known.
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
-----Original Message-----
From: rowan(_at_)sylvester-bradley(_dot_)org
[mailto:rowan(_at_)sylvester-bradley(_dot_)org]
Sent: 24 September 2009 11:57
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Subject: Expression handed to saxon:evaluate
can't access variables
I'm trying to design a transform that needs to evaluate an
expression taken from the XML input file. I'm trying to use
the saxon:evaluate function to do this, as follows:
<xsl:value-of select="saxon:evaluate(Caption)"/>
The problem seems to be that my expression (which is in the
Caption element of my source file):
normalize-space(concat($parentnode/Caption,' ',$tablenode/Caption))
contains some references to variables. When I try to run
this, it reports "Static error in XPath expression supplied
to saxon:evaluate: Undeclared variable in XPath expression:
$parentnode".
When I put the expression directly into my XSL file like this:
<xsl:value-of select="normalize-space(concat($parentnode/Caption,'
',$tablenode/Caption))"/>
it works.
How can I get this sort of expression supplied from the
source file to evaluate properly?
Many thanks - Rowan
--------------------------------------------------------------------
mail2web.com - MicrosoftR Exchange solutions from a leading
provider - http://link.mail2web.com/Business/Exchange
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--