RE: [xsl] CDATA block to node set.

Subject: RE: [xsl] CDATA block to node set.
From: "Stuart Celarier" <stuart@xxxxxxxxxxx>
Date: Thu, 9 May 2002 12:43:03 -0700
Morten, I think you are a little confused. The contents of a CDATA block
is not markup, it is just straight text. In your example the
<e><f>hep</f></e> is just text content of the <b> element. A CDATA block
is an artifact of the serialization of XML, and not part of the XML data
model.

Further, XSLT operates on the tree parsed from the XML document, it does
not operate on the XML document. In the parsed tree, all vestiges of the
CDATA block have been removed. As far as XSLT knows, the <b> element
contains text only. You cannot address the contents of a CDATA block
from XSLT.

You could use XSLT to create a result (text) document containing the
text string in the <b> element, and since that text string happens to be
valid XML you could then parse that result document into a DOM or pass
that result document into another invocation of XSLT. Is that what you
are looking for?

Cheers,
Stuart

-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Morten
Primdahl
Sent: Thursday, May 09, 2002 07:19
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] CDATA block to node set.


Hi. Using XSLT 1.0, is it in any way possible to load the contents of
a CDATA block into a node-tree and process that?

<a>
   <b>
     <![CDATA[ <e><f>hep</f></e> ]]>
   </b>
</a>

For example, I would like to be able to apply templates to the e and f
elements. Am I correct if this is not possible unless I use extension
functions?

Thanks,

Morten



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread