xsl-list
[Top] [All Lists]

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

2006-04-26 09:26:46
On 4/26/06, David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk> 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.....

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--