xsl-list
[Top] [All Lists]

RE: Splitting a string on word boundaries

2003-02-10 11:39:38
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(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com     

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
thei
Sent: 10 February 2003 15:51
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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



<Prev in Thread] Current Thread [Next in Thread>