xsl-list
[Top] [All Lists]

Re: [xsl] escaping ampersands in replace function

2007-09-04 09:43:05
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,'&','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(_at_)nag(_dot_)co(_dot_)uk>:



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. 
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--