Re: [xsl] converting a sequence of text nodes into one

Subject: Re: [xsl] converting a sequence of text nodes into one
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Thu, 4 Jan 2007 11:42:22 +0000
On 1/4/07, Georges Schmitz <georges.schmitz@xxxxxxxxx> wrote:
What is the "fastest" way to convert a sequence of text nodes into one
single text node in XPath2.0?

I could do it outside of an XPath expression by applying xsl:value-of

    <xsl:param name="text" as="xs:string">
       <xsl:value-of select="@name"/>
    </xsl:param>

but I would like to have it more compact, something like:

    <xsl:param name="text" select="mysterious-function(@name)"
as="xs:string"/>

(mysterious-function should be a standard function, not one by me that
encapsulates xsl:value-of :-), but I don't know if such a construct exists)

Use string-join() with a space for the separator value (or leave it empty)


In XSLT 2.0 you can use <xsl:value-of> without a select eg

<xsl:value-of>
 <xsl:text>foo</xsl:text>
 <xsl:text>bar</xsl:text>
</xsl:value-of>

...will result in a sequence of length 1.

In your example though, how would an attribute return a sequence of
multiple text nodes?

Current Thread