Abel Braaksma wrote:
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.
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" >....
Hmm, that was a little verbose. This also works well and is easier to
read and understand, and now the parameter can be a simple string (but
make sure the prefix is the same as the in-scope prefix of the element
you are testing, which in turn means that you must choose your prefixes
wisely):
<xsl:param name="target" as="xs:string" select=" 't:child1' " />
<xsl:template match="/root/*[resolve-QName($target, .) =
resolve-QName(name(), .)]/child" >....
(I am not really accustomed with these functions, not sure what pitfalls
you should be aware of before applying this in a stable environment)
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>
--~--