Re: [xsl] How to Create Sequence of Quoted Strings

Subject: Re: [xsl] How to Create Sequence of Quoted Strings
From: Eliot Kimber <ekimber@xxxxxxxxxxxx>
Date: Thu, 24 Jan 2008 08:39:19 -0600
Andrew Welch wrote:
On 24/01/2008, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote:
On 24/01/2008, Eliot Kimber <ekimber@xxxxxxxxxxxx> wrote:
   <xsl:variable name="quotedNames" select="for $n in
xs:enumeration/@value return concat('^', $n, '^')"/>
   <xsl:sequence select="string-join($quotedNames, ' or ')"/>

Gives me "^foo^ or ^bar^ or ^fred^".

My problem is I can't figure out how to replace "^" with "'" in the
FLOWR expression
double them up:

concat('''', $n, '''')

Also you could make it a one liner:

xs:enumeration/@value/string-join(concat('''',.,''''), ' or ')

How did I not know about doubling the quotes? I guess I really was sick that day.

After I posted my question I did a close reading of the XSLT 2 spec and figured out how to do with value-of and nested elements, but the one-liner is of course the most elegant approach. I think I may finally understand the distinction between string sequences created with xsl:sequence and text nodes created with xsl:value-of.

For future reference, where is this convention for quoting quotes defined?


Eliot Kimber
Senior Solutions Architect
"Bringing Strategy, Content, and Technology Together"
Main: 610.631.6770

Current Thread