Subject: Re: [xsl] Content of Script element getting wrapped by CDATA From: "Darcy Parker" <darcyparker@xxxxxxxxx> Date: Thu, 23 Oct 2008 08:43:50 -0400 |
Hi Joyce, Glad you're making progress. (I used an XSLT 2.0 style identity transform. I think you figured it out... if you replace it with your preferred XSLT 1.0 identity transform, then that should work.) With regards to the CDATA tag being added by libxslt automatically - I would agree with David. It sounds like a bug for this element's text() node to be output this way. It should only do this if you have @cdata-section-elements set to script in xsl:output. And if the only output is <xsl:text> or <xsl:value-of> and they have disable-output-escaping="yes", then there should be no CDATA. I would investigate with the libxslt community. Darcy On Thu, Oct 23, 2008 at 5:22 AM, Joyce Babu <joyce@xxxxxxxxxxxxx> wrote: > Oops! It works only with Sablatron. Libxslt wraps the processed value > again in another CDATA tag and Xalan and Saxon shows the message > "Error on line 0" > > On Thu, Oct 23, 2008 at 2:48 PM, Joyce Babu <joyce@xxxxxxxxxxxxx> wrote: >> It did work. Here is the final working code >> >> <?xml version="1.0" encoding="utf-8"?> >> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> >> >> <xsl:output method="xml" omit-xml-declaration="yes" 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:apply-templates select="/head" /> >> <body> >> </body> >> </html> >> </xsl:template> >> >> <xsl:template match="script"> >> <xsl:copy> >> <xsl:apply-templates select="@*"/> >> <xsl:value-of disable-output-escaping="yes" >> >> select="concat('//<![CDATA[
',text(),'
//]]>')"/> >> </xsl:copy> >> </xsl:template> >> <xsl:template match="style"> >> <xsl:copy> >> <xsl:apply-templates select="@*"/> >> <xsl:value-of disable-output-escaping="yes" >> >> select="concat('<![CDATA[
',text(),'
]]>')"/> >> </xsl:copy> >> </xsl:template> >> >> <!--Identity Transform--> >> <xsl:template match="*"> >> <xsl:copy> >> <xsl:apply-templates select="@* | node()"/> >> <!--xsl:apply-templates select="node()"/--> >> </xsl:copy> >> </xsl:template> >> <xsl:template match="@*|text()|comment()|processing-instruction()"> >> <xsl:copy/> >> </xsl:template> >> >> </xsl:stylesheet> >> >> I wrote a separate template for style, since I don't think the single >> line comment (//) is not supported by css. >> >> Thanks a lot for helping me with this. >> >> Joyce
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Content of Script element, Joyce Babu | Thread | RE: [xsl] Content of Script element, Michael Kay |
Re: [xsl] Content of Script element, Andrew Welch | Date | Re: [xsl] Content of Script element, Darcy Parker |
Month |