RE: [xsl] Splitting a string on word boundaries

Subject: RE: [xsl] Splitting a string on word boundaries
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Mon, 10 Feb 2003 18:39:38 -0000
It's a case for a recursive template:

<xsl:call-template name="trim">
  <xsl:param name="in"/>
  <xsl:choose>
  <xsl:when test="substring($in, string-length($in), 1)=' ')">
    <xsl:value-of select="$in"/>
  </xsl:when>
  <xsl:otherwise>
    <xsl:call-template name="trim">
       <xsl:with-param name="in" 
           select="substring($in, 1, string-length($in)-1)"/>
    </
  </
</

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx     

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of thei
> Sent: 10 February 2003 15:51
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Splitting a string on word boundaries
> 
> 
> Hello all, I've got what I think is a simple problem but I 
> can't find a solution.
> 
> I am generating a RSS file and summarising the first 200 
> characters for the output.
> 
> The XML source <content> element contains only text (xs:string).
> 
> The XSL is:
> 
> <xsl:value-of 
> select="normalize-space(substring(content[not(@private)],1,200))"/>
> 
> This can often cause words to become truncated at the end. I 
> would much rather have a way to output say the first 30 
> words, rather than the first 200 characters.
> 
> The full xsl is available at 
> http://journal.the-i.org/xsl/rss091.xsl and > rss-imports.xsl 
> and the output is http://journal.the-i.org/rss091.xml
> 
> Thanks for any help :)
> 
> Ned Martin
> http://nedmartin.org/
> 
> 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread