This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: whitespace as a parameter to a template (replace linefeed with li nefeed tab)
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] whitespace as a parameter to a template (replace linefeed with li nefeed tab)
- From: Chris Nolte <cgn7094 at yahoo dot com>
- Date: Wed, 30 May 2001 15:19:47 -0700 (PDT)
- Reply-To: xsl-list at lists dot mulberrytech dot com
I'll jump in, since it's perhaps the only question that will be asked on
this list where I actually know the answer!
Try something like:
<xsl:variable name='lf'><xsl:text> </xsl:text></xsl:variable>
<xsl:variable name='tab'><xsl:text>	</xsl:text></xsl:variable>
<xsl:variable name='lftab'><xsl:copy-of select='$lf'/><xsl:copy-of
select='$tab'/></xsl:variable>
and
<xsl:call-template name="do-replace">
<xsl:with-param name="text" select="$x"/>
<xsl:with-param name="replace" select="$lf"/>
<xsl:with-param name="by" select="$lftab"/>
</xsl:call-template>
If you don't want to define the variables above, I think the only thing
you really need is to put the "replace" and the "by" inside
<xsl:text>...</xsl:text>:
<xsl:call-template name="do-replace">
<xsl:with-param name="text" select="$x"/>
<xsl:with-param
name="replace"><xsl:text> </xsl:text></xsl:with-param>
<xsl:with-param
name="by"><xsl:text> 	</xsl:text></xsl:with-param>
</xsl:call-template>
is the character entity for a line feed; 	 is the entity
representing a tab.
Hope this helps,
Chris
--- "MacEwan, James (Information Services)"
<James.MacEwan@investorsgroup.com> wrote:
> Hi xsl-list,
>
> Background:
> I am producing a text document and need to replace a linefeed character
> with
> a linefeed tab combination.
>
> My input XML "street" tag looks something like this:
> ...
> <street><![CDATA[Suite 123
> 456 Harrington Way]]></street>
> ...
>
> I want my output to look like this
> ...
> Addr: Suite123
> 456 Harrington Way
> ...
>
> I have roughly used the Replace string algorithm as found in Mike Kay's
> book
> (see also http://www.dpawson.co.uk/xsl/replace.html). I do not wish to
> hardcode in the values of the substring to find and substring to put in
> its
> place, but to pass them in as parameters to a template.
>
> Problem:
> I am making the call to my "do-replace" template as follows:
> <xsl:call-template name="do-replace">
> <xsl:with-param name="text" select="$x"/>
> <xsl:with-param name="replace">
</xsl:with-param>
> <xsl:with-param name="by">
</xsl:with-param>
> </xsl:call-template>
>
> I suspect that the XML parser is converting my the whitespace in the
> "replace" and "by" parameters to a single space or an empty string.
> What is
> the proper way to preserve the white space in parameters being passed
> into a
> template?
>
> Thanks,
>
> J.
>
>
> James MacEwan
> Software Developer
> Investors Group Inc.
> mailto:James.MacEwan@investorsgroup.com
> v: (204) 956-8515
> f: (204) 943-3540
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail - only $35
a year! http://personal.mail.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list