Re: [xsl] split string to whole words based on length

Subject: Re: [xsl] split string to whole words based on length
From: "andrew welch" <andrew.j.welch@xxxxxxxxx>
Date: Wed, 26 Apr 2006 17:26:25 +0100
On 4/26/06, David Carlisle <davidc@xxxxxxxxx> wrote:
>
>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>                 version="2.0"
>
>  >
>
>
> <xsl:variable name="str" select="'one,two,three,four,five'" as="xs:string"
xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
> <xsl:variable name="length" select="10" as="xs:integer"
xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
>
> <xsl:output indent="yes"/>
>
> <xsl:template name="x">
> <xsl:analyze-string select="$str" regex=".{{0,{$length}}},">
>   <xsl:matching-substring>
>     <words><xsl:value-of
select="substring(.,1,string-length(.)-1)"/></words>
>   </xsl:matching-substring>
>   <xsl:non-matching-substring>
>     <words><xsl:value-of select="."/></words>
>   </xsl:non-matching-substring>
> </xsl:analyze-string>
> </xsl:template>
>
> </xsl:stylesheet>
>
>
> $ saxon8 -it x split.xsl
> <?xml version="1.0" encoding="UTF-8"?>
> <words>one,two</words>
> <words>three,four</words>
> <words>five</words>


Thanks this is really good... so what's going on in the regex?  :)  I
fear maintenance issues when I have to revisit the code in a few
months time.....

Current Thread