xsl-list
[Top] [All Lists]

Re: Unescaped CDATA?

2005-12-18 00:22:51
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

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