Subject: RE: Select on Node List Variable
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Sat, 5 Jun 2004 07:22:32 +0100
|
The variable item-elements is the root node of a temporary tree, and when
you apply-templates to it, the template rule invoked is the one with
match="/". Use apply-templates select="$var/*", or use a mode.
Note that Saxon 6.5 does not correctly enforce all the restrictions in the
XSLT 1.0 specification, which prevent you using a result tree fragment as a
node-set in this way.
Michael Kay
> -----Original Message-----
> From: Roger L. Cauvin [mailto:roger@xxxxxxxxxx]
> Sent: 05 June 2004 03:11
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Select on Node List Variable
>
> I am having trouble understanding the behavior of the
> following stylesheet.
> I intended for the main template to build a node-list of
> <item> elements and
> then process them using another template, but instead Saxon
> 6.5.2 is giving
> me a stack overflow error. If I change the 'apply-templates' and
> corresponding template to use a mode, it works as intended
> (outputs 'hello'
> and 'goodbye').
>
> <?xml version="1.0" ?>
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"
> standalone="no"/>
>
> <xsl:template match="/">
> <xsl:variable name="item-elements">
> <xsl:element name="item">hello</xsl:element>
> <xsl:element name="item">goodbye</xsl:element>
> </xsl:variable>
> <xsl:apply-templates select="$item-elements"/>
> </xsl:template>
>
> <xsl:template match="item">
> <xsl:value-of select="."/>
> <xsl:if test="position() != last()">
> <xsl:text> </xsl:text>
> </xsl:if>
> </xsl:template>
>
> </xsl:stylesheet>
>
> Why the infinite loop?
>
> --
> Roger L. Cauvin
> roger@xxxxxxxxxx
>
>
> --+------------------------------------------------------------------
> 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@xxxxxxxxxxxxxxxxxxxxxx>
> --+--
>
>
|