xsl-list
[Top] [All Lists]

node-set() confusion

2004-10-16 15:54:06
I originally posted this question in the xalan-j-users mailinglist thinking it was a bug in Xalan but after getting the same result with the saxon xslt processor I'm not too sure...

I'm having problems when using the exslt:node-set() function as well. I'm not sure if it's related or if I've just missed something basic but I'll explain it anyway:

*** here is my xml document:

<root>
    <foo>
        <bar id="1"/>
        <bar id="2"/>
        <bar id="3"/>
    </foo>
</root>




*** and here is my xslt script:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    xmlns:exslt="http://exslt.org/common";>

    <xsl:output method="html"/>

    <xsl:template match="/">
<xsl:message>correct: <xsl:for-each select="/root/foo/bar">found! </xsl:for-each></xsl:message>

        <xsl:variable name="result-tree-fragment">
            <xsl:for-each select="/root/foo/bar">
                    <bar id="{(_at_)id}"/>
            </xsl:for-each>
        </xsl:variable>

        <xsl:for-each select="/root/foo">
<xsl:message>still correct: <xsl:for-each select="/root/foo/bar">found! </xsl:for-each></xsl:message>
        </xsl:for-each>

        <xsl:for-each select="exslt:node-set($result-tree-fragment)/bar">
<xsl:message>broken: <xsl:for-each select="/root/foo/bar">found!</xsl:for-each></xsl:message>
        </xsl:for-each>
    </xsl:template>

</xsl:stylesheet>




when parsed by xalan the output looks like this:

file:/home/test.xsl; Line #10; Column #-1; correct: found! found! found!
file:/home/test.xsl; Line #19; Column #-1; still correct: found! found! found!
file:/home/test.xsl; Line #23; Column #-1; broken:
file:/home/test.xsl; Line #23; Column #-1; broken:
file:/home/test.xsl; Line #23; Column #-1; broken:


I expected it to look like this:

file:/home/test.xsl; Line #10; Column #-1; correct: found! found! found!
file:/home/test.xsl; Line #19; Column #-1; still correct: found! found! found!
file:/home/test.xsl; Line #23; Column #-1; broken: found! found! found!
file:/home/test.xsl; Line #23; Column #-1; broken: found! found! found!
file:/home/test.xsl; Line #23; Column #-1; broken: found! found! found!


can anybody help?


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