PHP. XML. пустая CDATA удаляется автоматически
От: oluckyman  
Дата: 23.12.08 11:15
Оценка:
Приветствую, любители магии и мистики!

Суть проблемы в том, что один и тот же код на разных серваках (с одинаковыми версиями пхп и апаче) работает по-разному.
В интересующем нас контексте код заменяет содержимое секции CDATA на пустую строку ($val=='')
            if ($item->nodeType == XML_TEXT_NODE) {
                $cdata = $dom->createCDATASection($item->nodeValue);
                $item->parentNode->replaceChild($cdata, $item);
                $item = $cdata;
            }
            $item->nodeValue = str_replace($var,$val,$item->nodeValue);



В результате в одном XML получается вот это:
  <node>
    <one><![CDATA[one]]></one>
    <two><![CDATA[two]]></two>
    <emptynode><![CDATA[]]></emptynode>
  </node>


а в другом вот это:
  <node>
    <one><![CDATA[one]]></one>
    <two><![CDATA[two]]></two>
    <emptynode></emptynode>
  </node>


Почему удаляется пустая CDATA, или, наоборот, почему не удаляется ?

Заранее благодарен-)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.