Subject: Re: 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,'&','and') and replace($l_TempString,'&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 & 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 & so the xslt looks like
>
> select="replace($l_TempString,'&','and')"
>
> This is assuming that your input string contains a " & "
> if it contains " & "
> then you want the XPath
>
>
> replace($l_TempString,'&','and')
>
>
> which would be written in an XML file such as an XSLT stylesheet as
>
> select="replace($l_TempString,'&amp;','and')"
>
> as the & has to be written as &
>
> 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.
> ________________________________________________________________________
|