получить [cdata] контент с помощью php - PullRequest
1 голос
/ 10 января 2012

Я читаю это руководство по извлечению RSS-каналов с использованием PHP Simple XML.
Причина, по которой я хочу сделать это сам вместо плагина Wordpress, заключается в отсутствии отображения изображений.
Используя это руководство, я подумал, что смогу самостоятельно просматривать узлы и отображать то, что хочу, но я даже не извлекаю нужные мне данные, потому что они заключены в ![CDATA]:

 <description>
<![CDATA[
<img src="http://images.highspeedbackbone.net/SKUimages/small/m17-1023-main666-tmc.jpg"/><br/> The Microsoft Office Home and Business 2010 Product Key Card brings together the roles of managing a business, running a household and helping with ho
]]>
</description>

Итак, я после этого тега img, но его там нет, используя этот код из учебника:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://rss.linksynergy.com/promo.rss?promoid=3076&token=8c86517642801a8d4e1132xxxxxxxxxxxxxxxx35e66a3');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);

$xml = new SimpleXMLElement($data);

Любые предложения приветствуются.

Спасибо!

1 Ответ

1 голос
/ 10 января 2012

Попробуйте это:

$xml = new SimpleXMLElement($data, LIBXML_NOCDATA);

При этом элементы CDATA будут разбиты на обычные текстовые узлы, чтобы вы могли получить к ним доступ, как и любой другой текст, с помощью $xml['decription']

См. http://www.php.net/manual/en/simplexmlelement.construct.php для справки.

...