xsl-list
[Top] [All Lists]

RE: [xsl] Processing empty nodes in XSLT

2006-11-29 16:12:36
You need to re-educate the recipient of the XML that CDATA has no semantics.
If you can't do that, you need to write your own serializer.

Or perhaps you could output processing instructions <?start-cdata?> and
<?end-cdata?> and then postprocess the output to turn these into <![CDATA[
and ]]> respectively.


Michael Kay
http://www.saxonica.com/ 

-----Original Message-----
From: Chris Griffin [mailto:listfeed(_at_)33keys(_dot_)com] 
Sent: 29 November 2006 22:18
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Processing empty nodes in XSLT

I need to enclose the data in my XML in CDATA. Doing this for 
nodes with data was simple.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";  
version="1.0">
   <xsl:output cdata-section-elements="<list of node names>"/>
   <xsl:template match="*">
     <xsl:copy-of select="*"/>
   </xsl:template>
</xsl:stylesheet>

That was simple. Except that doesn't work for empty nodes. 
For empty nodes I need <name><![CDATA[]]></name>. I've tried 
various ways of doing this but I don't seem to understand how 
to process each node of the input. I would like the solution 
to generically add "<![CDATA[]]  >" to all empty nodes.

Thanks,
Chris Griffin


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



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