RE: [xsl] A sequence of more than one item is not allowed as the value of item

Subject: RE: [xsl] A sequence of more than one item is not allowed as the value of item
From: "Andrew Welch" <ajwelch@xxxxxxxxxxxxxxx>
Date: Thu, 2 Jun 2005 17:12:27 +0100
>    You can either do:
>   >
>   <xsl:variable name="foo" as="xs:string">
>    <xsl:value-of>
>     <xsl:text>abc</xsl:text><xsl:value-of select="'def'"/>
>    </xsl:value-of>
>    </xsl:variable>
>
> aha! that's what i suggested originally:-)

The problem with this is that it's a two pronged attack - you need both
the 'as' attribute and the xsl:value-of.  Couple that with a
xsl:value-of within a xsl:value-of and it's beginning to look like you
are making it up!

I think I'm just finding it difficult to grasp that adjacent text nodes
get merged, adjacent strings do not:

 <xsl:value-of separator=",">
   <xsl:value-of select="'abc'"/>
   <xsl:value-of select="'def'"/>
 </xsl:value-of>

Gives 'abcdef'

 <xsl:value-of separator=",">
   <xsl:sequence select="'abc'"/>
   <xsl:sequence select="'def'"/>
 </xsl:value-of>

Gives 'abc,def'

The statement 'value-of select returns a text node, sequence select
returns a string' helps here I think...

Current Thread