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 & ? If I
try translate(text(), &, &) 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 & 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 &.
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