Re: [xsl] XPath 2.0: string to sequence of characters

Subject: Re: [xsl] XPath 2.0: string to sequence of characters
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Fri, 02 Feb 2007 17:14:37 +0100
Martin Honnen wrote:

With XPath 2.0, what is the easiest way to split a string into a sequence of strings of length one e.g.
"Kibology" into ("K", "i", "b", "o", "l", "o", "g", "y")
I came up with e.g.
for $index in 1 to string-length("Kibology")
return substring("Kibology", $index, 1)
but wonder whether there is a shorter/easier way.

Not sure about 'easier', let alone 'faster' (I'm sure it isn't), but it is 40% shorter, to ~48 chars (choose the token wisely):


tokenize(replace('Kibology', '(.)', '$1~'), '~')

Wannabe sure of the token not being in your string, use Private Use Area characters:

tokenize(replace('Kibology', '(.)', '$1&#xE0F1;'), '&#xE0F1;')

but this doubtlessly makes it less readable and a bit larger ;)

-- Abel Braaksma

Current Thread