Re: [xsl] Enclosing sequence items in single quotes

Subject: Re: [xsl] Enclosing sequence items in single quotes
From: cknell@xxxxxxxxxx
Date: Fri, 19 Oct 2007 11:25:41 -0400
After adding the appropriate namespace declaration, this template does the trick, thanks.

<xsl:template match="/">
    <xsl:variable name='pf-codes' select="position-translation/position/code[@pf='pf']" as="xs:string+"/>
     <xsl:value-of separator="," select="for $c in $pf-codes return concat('''', $c, '''')"/>
</xsl:template>
-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     Andrew Welch <andrew.j.welch@xxxxxxxxx>
Sent:     Fri, 19 Oct 2007 16:18:38 +0100
To:       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject:  Re: Re: [xsl] Enclosing sequence items in single quotes

On 19/10/2007, cknell@xxxxxxxxxx <cknell@xxxxxxxxxx> wrote:
> I spoke too soon. What I'm getting with each suggestion is a single string containing all the string values of the matched elements with single quotes at each end.
>
> e.g.
>
> 'AA BB CC DD EE GG ... ZZ'
>
> Any other ideas?

in which case $pf-codes must be a sequence of one item, rather than a
sequence of many items...

looking back at your original post you have:

<xsl:variable name='pf-codes'>
  <xsl:value-of select="position-translation/position/code[@pf='pf']"/>
</xsl:variable>

which would cause what you're seeing - you probably want:

<xsl:variable name='pf-codes'
select="position-translation/position/code[@pf='pf']"
as="xs:string+"/>

..which would give you sequence of many items.


cheers
-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

Current Thread