xsl-list
[Top] [All Lists]

Re: Unescaped CDATA?

2005-12-17 16:11:25
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 section:

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

<content>
    <![CDATA[
    (malformed HTML here)
    ]]>
</content>

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

<i>Serapions-Brüder</i>

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(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Cancer Awareness Aug'05  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


--~------------------------------------------------------------------
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>
--~--



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