Здравствуйте, ., Вы писали:
.>От погоды зависит.
.>А вообще говоря, оба документа эквивалентны. Так что должно быть без разницы.
Нет, разница есть. Например, XPath запрос //emptynode[text()] возвращает только тот нод, у которого внутри пустая CDATA
.>Если нужно посимвольное равенство документов, то можно посмотреть c14n, правда
.>не знаю как оно в php.
В принципе я могу отслеживать пустую CDATA и вручную удалять её. Но хотелось бы разобраться почему оно так работает?
Написал тестовый скрипт, чтоб убедиться что ничего лишнего на его работу не влияет:
<?
$dom = new DOMDocument();
$root = $dom->createElement('root');
$cdata = $dom->createCDATASection('');
$root->appendChild($cdata);
$dom->appendChild($root);
print "<textarea rows='20' cols='80'>";
echo $dom->saveXML();
print "</textarea>";
?>
В результате на одном серваке так:
<?xml version="1.0"?>
<root></root>
на другом эдак:
<?xml version="1.0"?>
<root><![CDATA[]]></root>
Почему??