xsl-list
[Top] [All Lists]

Re: substitute variable value into xpath expression - problem

2005-04-11 07:29:08

This is a FAQ.

msxsl:node-set($TRAINING_TYPE_XMLDOC)/$XML_PARENT/$XML_CHILD">

$XML_PARENT contains a string as does XML child
so your expression is equivalent to

msxsl:node-set($TRAINING_TYPE_XMLDOC)/'training_types'/'training_type'">

which is a syntax error. people often seem to expect this to work in
XSLT but it is just the same as having 
x = " + 1"
y = 1
in C
and hoping that
y x
expands to
1 + 1
and evaluates to 2.

In general you need an extension function that evaluates strings as
Xpaths, but here you can do


<xsl:for-each 
select="msxsl:node-set($TRAINING_TYPE_XMLDOC)/*[name()=$XML_PARENT]/*[name()=$XML_CHILD}">

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

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



<Prev in Thread] Current Thread [Next in Thread>