формирование xml

Kirill

Новичок
формирование xml

При формировании XML знак & надо заменять ссылкой на сущность т.е. & или ссылку по номеру символа & - это все работает, когда файл php, генерирующий XML, в кодировке cp1251. Если файл, генерирующий xml будет в utf8, то & конвертировать не нужно?
 

Popoff

popoff.donetsk.ua
Kirill
Символ амепрсанд не имеет к кодировке никакого отношения и обрабатывается всегда одинаково, не зависимо от кодировки.
 

Kirill

Новичок
странно.
Почем при формировании ссылок ($prop - массви с параметрамии ссылок):
foreach($prop as $key=>$value){
$lnk_prop = (empty($lnk_prop)) ? '?' : $lnk_prop.'&';
$lnk_prop .= $key.'='.$value;
}
Если после цилка: var_dump($lnk_prop);
Выведет следующее:
<pre>
<font color='#bb00bb'>'?id=3&amp;act=1'</font>
</pre>

Т.е. знак & заменен на &amp; Почему? Файл в кодировке utf8.
 

Kirill

Новичок
поставил на другой сервер - там такого нет. Это по ходу у меня локальная проблема. Но вопрос все же остался.
Добавляю атрибуты у нод не конвертируя, в атрибутах есть и ссылки вида index.php?a=b&c=d, т.е. присутствует знак &. Почему xml не ругается при добавлении атрибута, где присутствует &?
P.S. Не конверчу я так как весь код в UTF8
 

slach

Новичок
в значении атрибута ampersand должен задаваться как сущность
и в тексте тоже должен заменяться как сущность
по всем правилам XML well-formed документов
вне зависимости от кодировки
сущность есть &amp;
какие еще вопросы?
 

Kirill

Новичок
т.е. при формировании в php знак & конвертить в & amp; не нужно, функция createElement сама сконвертирует & в & amp; и в тексте ноды выведет & amp;?
 

Kirill

Новичок
>в значении атрибута ampersand должен задаваться как сущность
>и в тексте тоже должен заменяться как сущность
сущность это &, & amp - это ссылка на сущность.
Сам я пробовал - задаю атрибуты без конвертации & в & amp; - тестировал на двух хостах - работает, но меня интересует всегда ли это будет работать и везде ли (может у этих двух севаках какая-то спецефическая конфигурация).
 
Сверху