xsl-list
[Top] [All Lists]

Re: [xsl] Content of Script element getting wrapped by CDATA

2008-10-22 14:12:07
Thanks for the reply Darcy,

But if I provide the input xml like that, I am getting
<script type="text/javascript"><![CDATA[//

alert('JOYCE');
//]]></script>

ie, the CDATA tag that I inserted within the xml disappears. And a new
tag is added by the xslt processor, wrapping the content.

On Wed, Oct 22, 2008 at 11:30 PM, Darcy Parker 
<darcyparker(_at_)gmail(_dot_)com> wrote:

Hi Joyce,

Standard practice is to format the output like this:

<script content="text/javascript">
// <![CDATA[

javascript code here

// ]]>
</script>

Note: The // are interpreted as comments to javascript, so it won't
read the line with the CDATA opening and closing tags.  And it is
critical to have the CDATA in the XML because some characters in
javascript and not valid for text() nodes in XML.

You could try writing your input XML like this.

Darcy
On Wed, Oct 22, 2008 at 1:24 PM, Joyce Babu <joyce(_at_)joycebabu(_dot_)com> 
wrote:
I have PHP 5.2.6 and was trying to create my first XSL powered
website. I am trying to build a template system. In this, the XML
contains a head section, which is directly copied by the XSLT to the
output document.

In my XML data, I tried to include a script element, and the content
of the tag is automatically wrapped in <![CDATA[ ]]> by the libxslt
processor (default php processor). Hence I am getting a syntax error
in my browser.

Can anyone plz tell me how to fix it?

Here is my xml code

----------------------------------------------------------
<?xml version="1.0"?>
<head>
 <title>XSLT</title>
 <link href="/manage/style.css" type="text/css" rel="stylesheet"/>
 <script src="/js/jquery.js" type="text/javascript"/>
 <script src="/js/tablesort.js" type="text/javascript"/>
 <script type="text/javascript">
alert('No Error');</script>
</head>
----------------------------------------------------------
XSL Code
----------------------------------------------------------

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
 xmlns:php="http://php.net/xsl";

 xsl:extension-element-prefixes="php"
 xmlns=""

<xsl:output method="xml" omit-xml-declaration="yes" standalone="no"
indent="no" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0
Strict//EN" 
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>

<xsl:template match="/">
 <html xml:lang="en" lang="en">
 <!-- Include Header-->
 <xsl:copy-of select="/root/head" />
 <body>
 </body>
 </html>
</xsl:template>
<!-- Identity Template -->
<xsl:template match="@*|node()">
 <xsl:copy-of select="." />
</xsl:template>

</xsl:stylesheet>
----------------------------------------------------------

Output:
----------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   <title>XSLT</title>
   <link href="/manage/style.css" type="text/css" rel="stylesheet" />

   <script src="/js/jquery.js" type="text/javascript"></script>
   <script src="/js/tablesort.js" type="text/javascript"></script>
   <script type="text/javascript"><![CDATA[
alert('No Error');]]></script>
 </head>
 <body>
 </body>
 </html>

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


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