xsl-list
[Top] [All Lists]

RE: (How) can I randomly access the result of a <xsl:for-each select="...?

2005-10-15 02:21:36
 
Still XSLT 1.0:

If I do

 <xsl:variable name="fragment" select="//ul"/>

(not using a for-each) everything works fine and I can cast the
variable to a nodeset and access it as documented.

You don't need to cast it to a node-set, it already is a node-set.

However if I try

<xsl:variable name="fragment">
    <xsl:for-each select="//ul">
        <xsl:copy-of select="."/>
    </xsl:for-each>
</xsl:variable>


I only get a count() of 1 when transforming this test-document:

In this case the variable is a result-tree-fragment, not a node-set. In most
1.0 products you can convert an RTF to a node-set using the vendor's
xx:node-set() extension function. The resulting node set contains a single
node, the root of a tree (it's like "/" in a source document). So count()
will give 1. To count the ul elements, you need to do
count(xx:node-set($fragment/*))

Michael Kay
http://www.saxonica.com/ 



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