Subject: RE: Microsoft msxml3.0 v. msxml4.0
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Fri, 21 Jun 2002 21:20:09 +0100
|
>
> Can anyone figure out why $row1 does not evaluate to a
> nodeset? What do I need to do different about declaring row1?
xsl:variable with non-empty content creates a result tree fragment.
Why are you copying the nodes to create a new tree? This is a really
expensive operation. You only need to select the nodes:
<xsl:variable name="row1"
select="$items[position() > 0 and position() < 5]"/>
Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx
>
> This works fine in MSXML3.0 sp1
>
>
> <xsl:template name="grid">
> <xsl:param name="items"/>
> <xsl:param name="URL"/>
>
> <xsl:variable name="row1"><xsl:copy-of
> select="$items[position() > 0 and position() <
> 5]"/></xsl:variable>
> <xsl:variable name="row2"><xsl:copy-of
> select="$items[position() > 4 and position() <
> 9]"/></xsl:variable>
> <xsl:variable name="row3"><xsl:copy-of
> select="$items[position() > 8 and position() <
> 13]"/></xsl:variable>
> <xsl:variable name="row4"><xsl:copy-of
> select="$items[position() > 12 and position() <
> 17]"/></xsl:variable>
>
> <!-- The following expression works -->
>
>
> <xsl:for-each select="$items[position() > 0
> and position() < 5]">
> <xsl:value-of select="@SKU"/><br/>
> </xsl:for-each>
>
> <!-- This one below does not work???? ::-->
>
> <xsl:for-each select="$row1">
> <xsl:value-of select="@SKU"/><br/>
> </xsl:for-each>
>
> <!-- <I>Expression must evaluate to a node-set.
> -->$row1<--</I> -->
>
> </xsl:template>
>
>
> Sean Hayes
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|