Petr Smith wrote:
but it encloses it to CDATA section automatically like this:
<script type="text/javascript"
language="Javascript"><![CDATA[alert('ddd');]]></script>
but I need it like this (because otherwise the javascript don't work):
<script type="text/javascript" language="Javascript">
//<![CDATA[
alert('ddd');
//]]>
</script>
First, script was using some bogus method names.
Secondly, you try to do anything like the following (which do work)?
$html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n".
" \n".
"<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\"
lang=\"en\">\n".
"<head>\n" .
" <script type=\"text/javascript\" language=\"Javascript\" />\n" .
"</head>\n" .
"<body>hello\n" .
"</body>\n" .
"</html>";
$dom = new DomDocument();
$dom->preserveWhiteSpace = true;
$dom->loadXML($html);
$params = $dom->getElementsByTagName('script');
foreach ($params as $param) {
$dat = $dom->createTextNode("\n//");
$param->appendChild($dat);
$dat = $dom->createCDATASection("\n\nalert('ddd');\n\n//");
$param->appendChild($dat);
$dat = $dom->createTextNode("\n");
$param->appendChild($dat);
}
echo $dom->saveXML();
Could also do it using <!-- --> through a comment node (following adds
some linefeeds too):
foreach ($params as $param) {
$dat = $dom->createTextNode("\n");
$param->appendChild($dat);
$dat = $dom->createComment("\n\nalert('ddd');\n\n");
$param->appendChild($dat);
$dat = $dom->createTextNode("\n");
$param->appendChild($dat);
}
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php