Я пытаюсь поместить html-код для встраивания флеш-ролика в rss feed
, который затем будет парсером парсером (magpie)
на моем другом сайте. Как мне кодировать код встраивания с одной стороны, а затем декодировать его на другом, чтобы я мог вставить чистый html в DB
на принимающем сервере?
Поскольку RSS – это XML, вы можете проверить CDATA, который, я считаю, действителен в различных спецификациях RSS.
<summary> <! [CDATA [Данные здесь]]>
Вот запись w3schools на нем: http://www.w3schools.com/XML/xml_cdata.asp
htmlencode / htmldecode должен делать трюк.
Я использовал htmlentities / html_entity_decode, но по какой-то причине он не работает с парсером. В обычном тесте он работает, но парсер всегда возвращает html-код без символов <> ".
RSS – это XML. Он имеет очень специфические правила для кодирования HTML. Если вы его генерируете, я бы рекомендовал использовать библиотеку xml для записи узла, содержащего HTML, чтобы убедиться, что вы правильно кодируете.
HTMLencode будет выполнять только экранирование, необходимое для встраивания данных в HTML, правила XML более строгие.
Вместо того, чтобы писать собственный RSS-канал RSS, рассмотрите возможность использования структуры синдикации Django из django.contrib.syndication
:
https://docs.djangoproject.com/en/dev/ref/contrib/syndication/
Он также поддерживает вложения, которые являются способом RSS для встраивания изображений или видео.
Для пользовательских тегов существует также lowlevel API, который позволяет вам изменять XML: https://docs.djangoproject.com/en/dev/ref/contrib/syndication/#the-low-level-framework