This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: formatting problem
- From: "Joerg Heinicke" <joerg dot heinicke at gmx dot de>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Wed, 20 Feb 2002 21:02:47 +0100
- Subject: Re: [xsl] formatting problem
- References: <000a01c1ba45$736f5370$02c2c2c2@devstation1>
- Reply-to: xsl-list at lists dot mulberrytech dot com
> I am trying to have whats between the tags to printout via XSL to HTML
> exactly as it is. What keeps happening is that the white spaces get
deleted
> and it doesn't recognize the line feeds. Any ideas what I'm doing wrong ?
> The XML snippet is below.
>
> Thank You for your help
Hello Gene,
I'm quite sure, that this isn't a XSL-problem, but normal HTML-behaviour.
Did you ever try to place more than one spaces in HTML?
Is this what you have? Many spaces and linebreaks, removed in HTML.
<xsl:template match="ARTICLE">
<xsl:value-of select="."/>
</xsl:template>
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.
Does this help?
Regards,
Joerg
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list