This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Microsoft msxml3.0 v. msxml4.0
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Fri, 21 Jun 2002 21:20:09 +0100
- Subject: RE: [xsl] Microsoft msxml3.0 v. msxml4.0
- Reply-to: xsl-list at lists dot mulberrytech dot com
>
> 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@ntlworld.com
work: Michael.Kay@softwareag.com
>
> 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