gethinw Posted September 23, 2008 Share Posted September 23, 2008 Hi everyone, I'm having a few problems with using PHP to handle XML data. Basically, I'm getting data from a database, wrapping this in an XML document then performing an XSL transformation on it. This is all fine, until I want to include some HTML code snippets. I'm doing this using createCDATASection, but this seems to produce "<!--[CDATA[...]]-->" rather than "<![CDATA[...]]>", meaning that the XSL processor doesn't "see" the section at all. Here's some example code to explain better: $xmlDoc = new DOMDocument("1.0","ISO-8859-1"); $datasection = $xmlDoc->createElement("data"); $datasection = $xmlDoc->appendChild($datasection); $data = $xmlDoc->createCDATASection("<b>This</b> is an HTML <br /> snippet"); $data = $datasection->appendChild($data); //print $xmlDoc->saveXML(); produces "<data><!--[CDATA[<b>This</b> is an HTML <br /> snippet]]--></data>" $xslDoc = newDOMDocument(); $xslDoc->load("view.xsl"); $xslProc = new XsltProcessor(); $xslProc->importStylesheet($xslDoc); $output = $xslProc->transformToDoc($xmlDoc); print $output->saveXML(); produces "<div></div>", whereas transforming on data.xml containing <data><![CDATA[<b>This</b> is an HTML <br /> snippet]]></data> gives "<div><b>This</b> is an HTML <br /> snippet</div>" as expected view.xsl: <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <div> <xsl:value-of select="data"/> </div> </xsl:template> </xsl:stylesheet> Any ideas on how to get around this problem? Thanks, Gethin Link to comment https://forums.phpfreaks.com/topic/125453-php-and-xml-cdata-problem/ Share on other sites More sharing options...
gethinw Posted September 24, 2008 Author Share Posted September 24, 2008 Bump... Ideas anyone? Link to comment https://forums.phpfreaks.com/topic/125453-php-and-xml-cdata-problem/#findComment-649418 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.