This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: outputting a mixture of escaped and unescaped HTML.
- From: Mike Brown <mike at skew dot org>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Mon, 21 Jan 2002 21:05:33 -0700 (MST)
- Subject: Re: [xsl] outputting a mixture of escaped and unescaped HTML.
- Reply-to: xsl-list at lists dot mulberrytech dot com
Dean Missikowski wrote:
> I need to process some xml with attribute values that
> may contain markup text like this:
>
> <MEMO TEXT="Example:<span
> class='cs1'>...</span>$crThis is a
> new line..."/>
>
> The original data value of the attribute comes from a
> database in which CRLFs were replaced with the string
> $cr.
>
> I need to transform this into HTML that looks
> something like this:
>
> <div>Example:<span
> class='cs1'>...</span></br>This is
> a new line...</div>
>
> The problem I'm having is if I use something like:
>
> <xsl:template match="MEMO">
> <xsl:value-of
> select="foo:FormatMultiline(string(@TEXT))"
> disable-output-escaping="yes"/>
> </xsl:template>
>
> where foo:FormatMultiline() replaces $cr with </br>.
>
> However, this results in all the escaped markup to
> become "unescaped" when I want it to remain escaped
> except for the <br/>.
FAQ, although you're not really understanding what escaped text means.
Regardless, here's your solution.
<xsl:template match="MEMO">
<div>
<xsl:call-template name="lf2br">
<xsl:with-param name="StringToTransform" select="@TEXT"/>
</xsl:call-template>
</div>
</xsl:template>
<xsl:template name="lf2br">
<xsl:param name="StringToTransform"/>
<xsl:choose>
<xsl:when test="contains($StringToTransform,'
')">
<xsl:value-of select="substring-before($StringToTransform,'
')"/>
<br/>
<xsl:call-template name="lf2br">
<xsl:with-param name="StringToTransform">
<xsl:value-of select="substring-after($StringToTransform,'
')"/>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$StringToTransform"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
- Mike
____________________________________________________________________________
mike j. brown, fourthought.com | xml/xslt: http://skew.org/xml/
denver/boulder, colorado, usa | personal: http://hyperreal.org/~mike/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list