при загрузке строки с CDATA с помощью DOMDocument.loadHTML () и последующем сохранении с помощью DOMDocument.saveXML () все CDATA-узлы теряются — как их можно сохранить?
<?php
$html = ''
. '<?xml encoding="UTF-8">' . "\n". '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' . "\n". '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">' . "\n". '<head>' . "\n". '<title>TEST</title>' . "\n". '<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8"/>' . "\n". '</head>' . "\n". '<body>' . "\n". '<p>' . "\n". 'TEST: ' . "\n". '<![CDATA[SHOW ME!]]>' . "\n". '</body>' . "\n". '</html>' . "\n";
$DOM = new DOMDocument('1.0', 'utf-8');
$DOM->loadHTML($html);
$xml = $DOM->saveXML();
echo nl2br(htmlentities($xml));
?>
Задача ещё не решена.
Других решений пока нет …