Re: [xsl] node lists

Subject: Re: [xsl] node lists
From: "Hardy Merrill" <HMerrill@xxxxxxxxxxxxxxxx>
Date: Tue, 19 Oct 2004 08:07:57 -0400
I think(?) I know what the problem is, as David solved this exact
problem for me here on this list a few days ago - here is his response
to my problem:

-------------------------------------
if you use xsl:variable with content rather than a select attribute it
_always_ generates a result tree fragment corresponding to a root node
(/) with children containing whatever is generated, so if you use
xx:node-set() on that you always get back a node set consisting of
exactly one node, / you presumably want to access 

msxsl:node-set($sorted_legislators)/*

David
-------------------------------------

So, I think you need to
change this

    <xsl:for-each select="exslt:node-set($items)">

to this

    <xsl:for-each select="exslt:node-set($items)/*">

HTH.

Hardy Merrill

>>> richardlewis@xxxxxxxxxxxxxx 10/19/04 08:03AM >>>

On Tuesday, October 19, 2004, at 11:43 AM, David Carlisle wrote:
>
> Either two stylesheets or using your processor's xx:node-set() 
> extension
> function, two passes within the same stylesheet.
>
OK, I'm trying the node-set function (using Xalan-J 2.6).

This:

<xsl:variable name="items">
         <xsl:for-each select="//item[@class=$current-class]">
                 <xsl:sort select="@id" 
order="{ancestor::subsection/@sort}" />
                 <xsl:copy-of select="." />
         </xsl:for-each>
</xsl:variable>

<xsl:for-each select="exslt:node-set($items)">
         <xsl:message>
                 <xsl:value-of select="local-name()" />:
                 <xsl:value-of select="@class" />:
                 <xsl:value-of select="@id" />
         </xsl:message>
</xsl:for-each>

produces only one <xsl:message> where @class, @id and local-name() are

all blank.

Does anyone know why?

Cheers,
Richard

Current Thread