Subject: RE: split string to whole words based on length
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 26 Apr 2006 16:57:02 +0100
|
I think this kind of problem requires recursion even in 2.0: at least, if
you want it to be remotely efficient.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: andrew welch [mailto:andrew.j.welch@xxxxxxxxx]
> Sent: 26 April 2006 16:06
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: split string to whole words based on length
>
> I'm sure there's a good xslt 2.0 way of doing this that
> doesn't involve a recursive named template or function. In
> fact I'm sure it's come up a few times but I can't find it in
> the archives.
>
> Given a string of comma delimeted words and a length, split
> the string into substrings so that whole words are kept
> intact with proper use of the delimiter, where no string
> exceeds the length.
>
> So, given the following:
>
> <xsl:variable name="str" select="'one,two,three,four,five'"
> as="xs:string"/> <xsl:variable name="length" select="10"
> as="xs:integer"/>
>
> Should be output as:
>
> <words>one,two</words>
> <words>three,four</words>
> <words>five</words>
>
> As I say, I'm sure there's a quality solution to this, rather
> than the long winded recursive approach.
>
> Any takers?
|