xsl-list
[Top] [All Lists]

Re: converting CDATA ampersand to &

2003-03-13 05:34:32
Hi Vilius,

<xsl:value-of select="text()"/>

I need to present some text extracted from a database using xsl.
Some db text strings include '&' and give not well-formed error
message. Any ideas how to convert CDATA ampersand to &amp; ? If I
try translate(text(), &, &amp;) I run into the same problem.

I assume you've got something like:

  <foo><![CDATA[Tom & Jerry]]></foo>

As far as the XSLT processor is concerned, this is exactly the same as
if it were represented as:

  <foo>Tom &amp; Jerry</foo>

Assuming that you are using the xml or html output method, when the
XSLT processor outputs the text node generated by the <xsl:value-of>
instruction you use above, it will output the ampersand as &amp;.

If you have something like:

  <foo>Tom & Jerry</foo>

then your source document is not well-formed and therefore you can't
use XSLT to process it. You need to change the routine that you use to
extract information from your database so that the & is escaped
properly, and thus guarantee that the source XML is well-formed.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>