[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Need to wrap XML in <![CDATA[...]]> tags

Subject: RE: Need to wrap XML in <![CDATA[...]]> tags
From: "Matt Trimmer" <matt.trimmer@xxxxxxxxxxxxxx>
Date: Mon, 4 Aug 2003 15:34:58 +0100
xsl value of select cdata
Hi,
 
I have a similar requirement and I thought you could do it with
cdata-section-elements.

I want to make the following whole CONTENT section be enclosed in a CDATA
section but the cdata-section-elements doesn't seem to do it. Is there
something else I should use to make a whole tree CDATA?
 
 
<?xml version="1.0" ?> 
- <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" cdata-section-elements="TITLE
CONTENT" /> 
- <xsl:template match="dataroot">
- <DATA SERIAL="200307271225">
- <xsl:for-each select="Source">
- <ITEM>
- <URL>
  <xsl:value-of select="URL" /> 
  </URL>
- <LINK>
  http://www.site.com<xsl:value-of select="PARAM"
/>&referredURL=<xsl:value-of select="URL" /> 
  </LINK>
- <TITLE> <xsl:value-of select="Title" /></TITLE>
- <CONTENT>
- <html>
- <head>
- <title>
  <xsl:value-of select="Title" /> 
  </title>
- <body>
  <xsl:value-of select="Body" /> 
  </body>
  </head>
  </html>
  </CONTENT>
....etc


Matt
 



  



-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Jason Cunningham
Sent: 04 August 2003 15:19
To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
Subject:  Need to wrap XML in <![CDATA[...]]> tags


Hi,

I've got a strange requirement to transform

<sample>
  <name>
    <firstName>Mickey</firstName>
    <lastName>Mouse</lastName>
  </name>
</sample>

into

<sample>
  <person>
    <![CDATA[
      <name>
        <firstName>Mickey</firstName>
        <lastName>Mouse</lastName>
      </name>
    ]]>
  </person>
</sample>

I've written this XSL

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>

  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match='*[name() = "sample"]'>
    <sample>
      <person>
        <xsl:text disable-output-escaping="yes">
          &lt;![CDATA[
        </xsl:text>
        <xsl:copy-of select="./node()"/>
        <xsl:text disable-output-escaping="yes">
          ]]&gt;
        </xsl:text>
      </person>
    </sample>
  </xsl:template>

</xsl:stylesheet>

that gets me to

<sample>
  <person>
    &lt;![CDATA[
      <name>
        <firstName>Mickey</firstName>
        <lastName>Mouse</lastName>
      </name>
    ]]&gt;
  </person>
</sample>

Unfortunately, this isn't good enough, for the system I am interfacing with.

  I can not figure out how I can insert an unescapted '<' into the output - 
I've read that '<' isn't allowed inside the xsl:text tag.

Has anyone any ideas?

Thanks for your time,

Jason

_________________________________________________________________
Find a cheaper internet access deal - choose one to suit you. 
http://www.msn.co.uk/internetaccess


 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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.