Garvin Riensche 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.
You'll need XSLT 2.0 to have a global variable or parameter in you match
attribute.
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".
If you don't care about namespaces (but you should):
<xsl:template match="/root/*[local-name() = $target]/child" >....
If you do care about namespaces, you can do:
<xsl:param name="target" as="xs:QName" select="xs:QName('ns:position') />
<xsl:template match="/root/*[local-name-from-QName($targer) =
local-name() and namespace-uri-from-QName($target) =
namespace-uri()]/child" >....
If you want to supply more than one level in the path, you should
consider using FXSL (I believe it has some XPath parser). I also
remember having seen some XPath parser for XSLT 2.0 on this list, but
can't remember when.
Cheers,
-- Abel Braaksma
--~------------------------------------------------------------------
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>
--~--