Re: [xsl] Unescaped CDATA?

Subject: Re: [xsl] Unescaped CDATA?
From: Jan Eden <lists@xxxxxxxxxxx>
Date: Sun, 18 Dec 2005 08:22:51 +0100
Hi,

G. Ken Holman wrote on 17.12.2005:

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

Thanks, Ken and David! I knew about disable-output-escaping, but in the
tutorial I use, the feature is restrcited to <xsl:text>.

Cheers,

Jan
--
A good programmer is someone who looks both ways before crossing a one-way
street. - Doug Linder

Current Thread