XML » lamara-nsk.ru


lamara-nsk.ru
Это блог о сео, деньгах, заработке в сети, разработке своих проектов, программировании
и "жизни программиста", бизнесе, блогосфере, фрилансе и многом другом.


Контакты, Реклама в блоге





Вывод XML в браузер, почему может не работать обработка браузером?


ae471697

Автор DimoninG, написано 06.05.2009
Рубрика XML  

В моем предпоследнем проекте был пользовательский XML, куда заносились данные о товарах и предоставлялись партнерам в качестве рекламных материалов. XML выводился как обычный текст.

Сам XML был составлен по всем «законам жанра» – определение <?xml?> в начале, указание кодировки, главного тега. Все теги были закрыты, ошибок не было.

Браузеры, как Вы знаете, любят отображать XML по-своему. Оформлять его специальным образом. Этим занимается ФайрФокс и ИЕ (для Оперы нужен плагин). Чтобы было понятно о чем я, вот пример.

Но мой XML почему-то так не отображался. Он отображался просто текстом, причем теги «пропадали» (оно и понятно, браузер не знает таких тегов, но не показывает их). Заказчик же, заметив это, решил, что у меня неправильный XML (понятно, что на сам файл это никак не сказывается).

В чем было дело? Оказалось, что есть две причины на такое «неправильное» отображение.

1) Нужно передать заголовок Content-Type: text/xml; charset=utf-8. Отличается от «обычного» он типом контента (обычно text/html). В PHP заголовок передается так: header («Content-Type: text/xml; charset=utf-8″); (до вывода чего-либо, конечно).

2) По непонятной мне причине XML не может содержать наоборов символов а-ля &nbsp;, но при этом может содержать аналогичные замены для кавычек, например. Также XML не может содержать HTML-теги внутри XML-тегов. То есть может-то может, но тогда браузер будет ругаться на него.

Я написал небольшую функцию, через которую нужно пропустить текст до вывода в XML (скажем, описание товара). Она вырезает теги и некоторые недопустимые комбинации символов.

function xml_check($c){
$c = strip_tags ($c);
$c = str_replace («&ndash;», «», $c);
$c = str_replace («&nbsp;», «», $c);
$c = str_replace («&ldquo;», «», $c);
return $c;
}

Комментариев (6)



Что здесь почитать?



1.   Разработки.
1.1 Плагин "Я не робот"
1.2 Плагин "Код Adsense прямо в пост"

2.   Заработай.
2.1 Блогун: 20$ в день
2.2 Уходим от налогов в Sape
2.3 Хватит думать, пора зарабатывать

3.   Акции и конкурсы.
3.1 Ссылка за "Рабочий стол"

Показать весь список.

-->








Блог на движке WordPress и тема для него создана DimoninG'ом в 2007 году.
Все материалы авторские, их копирование запрещено законом об авторском праве.