Hola a todos!
En una funcion php estoy creando nodos html utilizando DOM.
Pero tambien debe crear una codigo javascript el cual debe estar encerrado en CDATA.
La siguiente función agrega la sección cdata a un nodo.
Código PHP:
function appendCdata($appendToNode, $text) {
if (strtolower($appendToNode->nodeName) == 'script') {
$cm = $appendToNode->ownerDocument->createTextNode("\n//");
$ct = $appendToNode->ownerDocument->createCDATASection("\n". $text ."\n//");
$appendToNode->appendChild($cm);
$appendToNode->appendChild($ct);
} else {
$ct = $appendToNode->ownerDocument->createCDATASection($text);
$appendToNode->appendChild($ct);
}
}
Desde mi función la llamo de esta manera:
Código PHP:
$script = $doc->createElement('script');
$this->appendCdata($script, 'algo');
$root->appendChild($script);
Pero el resultado final es:
Código PHP:
<script>
//
algo
//</script>
Porque no me agregó la entrada <
o acaso el tag:
<![CDATA
debo crear manualemente????