[Home] [By Thread] [By Date] [Recent Entries]
Hi Jeff,
If you're not interested in actually truncating the last paragraph, the stylesheet below should do the trick. See the comments for explanation. It will work for any sequence of elements within <body> (not just <p>). <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="body"> <!-- Process just the first child element --> <xsl:apply-templates mode="up-to-1000" select="*[1]"/> </xsl:template> <!-- Recursively process the child elements --> <xsl:template match="*" mode="up-to-1000"> <xsl:param name="char-count" select="0"/> <!-- The running character count consists of the count so far plus the length of the string-value of this element. --> <xsl:variable name="new-char-count" select="$char-count + string-length(.)"/> <!-- Copy this element -->
<xsl:copy-of select="."/><!-- Only process (copy) the next one if we haven't reached 1000 yet --> <xsl:if test="$new-char-count < 1000"> <xsl:apply-templates mode="up-to-1000" select="following-sibling::*[1]"> <!-- Propagate our running total --> <xsl:with-param name="char-count" select="$new-char-count"/> </xsl:apply-templates> </xsl:if> </xsl:template> </xsl:stylesheet> Let me know if you have any questions about the above. Evan Jeff Sese wrote: Hi,
|

Cart



