Re: [xsl] Unescaped CDATA?

Subject: Re: [xsl] Unescaped CDATA?
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 17 Dec 2005 18:11:25 -0500
At 2005-12-17 23:33 +0100, Jan Eden wrote:
I use a Python script to build XML files out of
database records. Within these records, a
certain field contains (not necessarily well-formed) HTML.

I need my XSLT processor  to skip this data when
transforming the document to an HTML document.
So I thought it would be a great idea to enclose the data in a CDATA

That is not just a great idea, it is required.

    (malformed HTML here)

This works - but the tags within the CDATA
section are escaped to literal <p>, <i> etc.

Right ... because they have to be in the XML.

So the browser displays


instead of the italic text Serapions-Br|der.

Right ... because if you just put out the text value then markup-sensitive characters must be escaped.

How can I

a) keep the XSLT processor from choking at the malformed HTML and
b) leave the tags within the HTML unescaped?

Do what you are doing so far for capturing your HTML tag soup, but change the way it is delivered to the output by turning off the escaping of the markup-sensitive characters:

<xsl:value-of select="content" disable-output-escaping="yes"/>

Your situation is the use-case for the XSLT
disable-output-escaping= feature of result tree
building ... however, processors are *not*
required to support this feature (but most (all?) do).

I hope this helps.

. . . . . . . . . . . Ken

Upcoming XSLT/XSL-FO hands-on courses:  Denver,CO March 13-17,2006
World-wide on-site corporate, govt. & user group XML/XSL training.
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Cancer Awareness Aug'05
Legal business disclaimers:

Current Thread