Приветствую, любители магии и мистики!
Суть проблемы в том, что один и тот же код на разных серваках (с одинаковыми версиями пхп и апаче) работает по-разному.
В интересующем нас контексте код заменяет содержимое секции 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, или, наоборот, почему не удаляется ?
Заранее благодарен-)