Hi,
trying to figure out what the error with this fragment (XSLT 2) is:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:template match="src">
<xsl:for-each select="tokenize( 'a c', '[ ]')">
<xsl:apply-templates select="/doc/*[current() eq string(@id)]" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
This gives an error, "Cannot select a node here: the context item is an
atomic value".
I see that the xsl:for-each iterates over a sequence of atomic values
(xs:string). So I assume that current() results in an xs:string, which
should be comparable to the string(@id) expression. The select="..."
expression does not depend on a context node, as it is an absolute path
from the document root. xsl:apply-templates results in a sequence and
therefore should be no problem in the xsl:for-each body. It's certainly
trivial - I just don't see it right now... :-/
An input for the above would e.g. be:
<doc>
<src />
<elem id="a">A</elem>
<elem id="b">B</elem>
<elem id="c">C</elem>
<elem id="d">D</elem>
</doc>
The desired output would (probably...) be:
AC
Regards, Christian
--~------------------------------------------------------------------
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>
--~--