Суть проблемы в том, что один и тот же код на разных серваках (с одинаковыми версиями пхп и апаче) работает по-разному.
В интересующем нас контексте код заменяет содержимое секции CDATA на пустую строку ($val=='')
oluckyman wrote:
> Почему удаляется пустая CDATA, или, наоборот, почему не удаляется ?
От погоды зависит.
А вообще говоря, оба документа эквивалентны. Так что должно быть без разницы.
Если нужно посимвольное равенство документов, то можно посмотреть c14n, правда
не знаю как оно в php.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: PHP. XML. пустая CDATA удаляется автоматически
Здравствуйте, ., Вы писали:
.>От погоды зависит. .>А вообще говоря, оба документа эквивалентны. Так что должно быть без разницы.
Нет, разница есть. Например, XPath запрос //emptynode[text()] возвращает только тот нод, у которого внутри пустая CDATA
.>Если нужно посимвольное равенство документов, то можно посмотреть c14n, правда .>не знаю как оно в php.
В принципе я могу отслеживать пустую CDATA и вручную удалять её. Но хотелось бы разобраться почему оно так работает?
Написал тестовый скрипт, чтоб убедиться что ничего лишнего на его работу не влияет:
Re: PHP. XML. пустая CDATA удаляется автоматически
Едниственное что приходит на ум это вот эта константа LIBXML_NOEMPTYTAG По идее на ваших серверах она должна быть разная.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: PHP. XML. пустая CDATA удаляется автоматически
Здравствуйте, meandr, Вы писали:
M>Re: PHP. XML. пустая CDATA удаляется автоматически M>Едниственное что приходит на ум это вот эта константа LIBXML_NOEMPTYTAG По идее на ваших серверах она должна быть разная.
Спасибо за наводку, завтра порою в этом направлении..
Но константа и там и там = 4
И, как мне показалось, константы LIBXML_* используются в качестве параметров для ДОМовских функций и их значения везде одинаковые