Re[2]: PHP. XML. пустая CDATA удаляется автоматически
От: oluckyman  
Дата: 23.12.08 15:24
Оценка:
Здравствуйте, ., Вы писали:

.>От погоды зависит.

.>А вообще говоря, оба документа эквивалентны. Так что должно быть без разницы.

Нет, разница есть. Например, 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>


Почему??
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.