Subject: Re: How to assign a sequence to a variable?
From: Manfred Staudinger <manfred.staudinger@xxxxxxxxx>
Date: Tue, 9 Aug 2005 16:03:43 +0200
|
> You need as item()+ on the variable definition, eg:
>
> <xsl:variable name="tempb" as="item()+">
Sorry, this does not seem to change anythinghelp
on my test case.
Manfred
On 8/9/05, andrew welch <andrew.j.welch@xxxxxxxxx> wrote:
> > Hi list,
> > I would like to return a sequence from a named
> > template, but I'm only getting a single string.
> > In the test only tempa gets the sequence, but how
> > to get it work for tempb and tempc?
> >
> > <?xml version="1.0" encoding="UTF-8" ?>
> > <xsl:stylesheet version="2.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> > <xsl:template match="/">
> > <xsl:variable name="tempa" select="'a1','a2','a3'"/>
> > <xsl:message select="$tempa[3]"/>
> > <xsl:variable name="tempb">
> > <xsl:value-of select="'b1','b2','b3'"/>
> > </xsl:variable>
> > <xsl:message select="$tempb[1]"/>
> > <xsl:variable name="tempc">
> > <xsl:call-template name="processName">
> > </xsl:call-template>
> > </xsl:variable>
> > <xsl:message select="$tempc[1]"/>
> > </xsl:template>
> > <xsl:template name="processName">
> > <xsl:value-of select="'c1','c2','c3'"/>
> > </xsl:template>
> > </xsl:stylesheet>
>
> You need as item()+ on the variable definition, eg:
>
> <xsl:variable name="tempb" as="item()+">
> ....
>
> Otherwise you will get a tree with a single child text node with all
> the entries in the sequence concatenated together with a space between
> each.
>
> cheers
> andrew
|