Re: [xsl] escaping ampersands in replace function

Subject: Re: [xsl] escaping ampersands in replace function
From: Mario Madunic <hajduk@xxxxxxxx>
Date: Tue, 4 Sep 2007 09:43:04 -0700
Sorry to say

replace($l_TempString,'&','and')
get an error message stating the & must be followed by an entity reference

replace($l_TempString,'&amp;','and') and replace($l_TempString,'&amp;amp;','and')
the amp is not replaced.

I'm using the latest version of Saxon8 (from sourceforge).

An example of a string I'm trying to replace: A &amp; B to A and B. So the
process I'm using is get only the string values of a node's descendants into a
var (l_TempString), then create a new variable with a replace statement. Maybe
my method is incorrect.

Marijan (Mario) Madunic




Quoting David Carlisle <davidc@xxxxxxxxx>:

> 
> 
> > I'm using XSLT2's replace function against a string but am having problems
> > escaping the ampersand.
> 
> ampersaand isn't a special character to xpath regular expressions, so
> you don't need to escape it  so you want:
> 
> replace($l_TempString,'&','and')
> 
> then you need to put that XPath expression in a slect attribute,
> whenever you put a string containg & in an XMl file you need to write it
> as &amp; so the xslt looks like
> 
> select="replace($l_TempString,'&amp;','and')"
> 
> This is assuming that your input string contains a " & " 
>  if it contains " &amp; "
> then you want the XPath
> 
> 
> replace($l_TempString,'&amp;','and')
> 
> 
> which would be written in an XML file such as an XSLT stylesheet as
> 
> select="replace($l_TempString,'&amp;amp;','and')"
> 
> as the & has to be written as &amp;
> 
> David
> 
> ________________________________________________________________________
> The Numerical Algorithms Group Ltd is a company registered in England
> and Wales with company number 1249803. The registered office is:
> Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
> 
> This e-mail has been scanned for all viruses by Star. The service is
> powered by MessageLabs. 
> ________________________________________________________________________

Current Thread