Subject: RE: [xsl] output CDATA in xml using xsl From: "Michael Kay" <mhk@xxxxxxxxx> Date: Sun, 21 Dec 2003 22:40:37 -0000 |
> Hello > I am trying to make a xsl document that converts one xml > document into > another, but have run into some trouble. > I have this document: > <ads> > <ad> > <hello>world</hello> > <paragraph>Some <bold>html</bold> formatted text</paragraph> > <paragraph>Another line of <bold>html</bold></paragraph> > </ad> </ads> > > And I want this out: > <ads> > <ad> > <hello>world</hello> > <htmlcontent> > <![CDATA[ > <p>Som Some <b>html</b> formatted text<p> > <p>Another line of <b>html</b></p> > ]]> > </htmlcontent> > </ad> > </ads> > > I have tried setting <xsl:output > cdata-section-elements="htmlcontent"> > but that did not help me? This transformation is difficult, because it breaks the "tree-to-tree" processing model of XSLT. The things in the CDATA that look like tags (for example <p>) are not actually tags; in fact the very purpose of the CDATA section is to say "even though it looks like a tag, it isn't one really". In Saxon you can use the saxon:serialize() extension function which turns a tree into a string containing serialized XML, and you can then output this string in a CDATA section. With other processors you might be able to write an extension function that achieves a similar effect. However, since XSLT is about transforming trees and you are working outside this model, it may be easier (and architecturally cleaner) to use a text-processing tool (e.g. sed or Perl) to post-process the output. This might be as simple as replacing "<htmlcontent>" by "<htmlcontent><![CDATA[" and "</htmlcontent>" by ">>]</htmlcontent>". Generally I agree with the view that putting markup inside CDATA sections is not good XML design, but it's often done and some people come up with plausible reasons why they've done it. Michael Kay XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] output CDATA in xml using, Mukul Gandhi | Thread | [xsl] Not-repeated elements in an <, Caranthir Morifinwë |
RE: [xsl] preventing output of attr, Michael Kay | Date | [xsl] Not-repeated elements in an <, Caranthir Morifinwë |
Month |