This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: formatting problem
Joerg Heinicke wrote:
> Try the following (replacing spaces with non-breaking spaces and linebreaks
> with <br/>):
>
> <xsl:template match="ARTICLE">
> <xsl:call-template name="linebreaks">
> <xsl:with-param name="string" select="translate(., ' ', ' ')"/>
> </xsl:call-template>
> </xsl:template>
>
> <xsl:template name="linebreaks">
> <xsl:param name="string"/>
> <xsl:choose>
> <xsl:when test="contains($string, ' ')">
> <xsl:value-of select="substring-before($string, ' ')"/>
> <br/>
> <xsl:call-template name="linebreaks">
> <xsl:with-param name="string"
> select="substring-after($string, ' ')"/>
> </xsl:call-template>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="$string"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
>
> This handles only linefeed, maybe you still need to handle carriage return.
> we replaced with 'nothing', so you have to change the with-param in
> the first template:
>
> <xsl:with-param name="string" select="translate(., ' ',
> ' ')"/>
>
> This means: replace ' ' (space) with   (non-breaking space) and
> (carriage return) with nothing.
or (less sophisticated ;) ):
...
<xsl:template match="ARTICLE">
<pre>
<xsl:value-of select="."/>
</pre>
</xsl:template>
...
Markus
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list