在http://feeds.feedburner.com/rb286中,有很多图片。但是,当我使用simplXmlElement将其转换为xml对象时,我无法看到图像。我的代码:
if (function_exists("curl_init")){
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,"http://feeds.feedburner.com/rb286");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$data=curl_exec($ch);
curl_close($ch);
//print_r($data); //here i'm able to see the images
$doc=new SimpleXmlElement($data);
print_r($doc); //here i'm not able to see the images
}
有人可以告诉我如何在转换为xml对象后访问图像?谢谢。
答案 0 :(得分:2)
您必须通过<content:encoded>
主标记中的个人<items>
的{{1}}代码进行迭代。我会使用xpath方法来选择标签。获得所需的元素后,您可以使用preg_match_all之类的字符串操作工具向其中<channel>
进行grep:
修改 添加了更精确的图片代码匹配,从而排除了来自Feedburner和其他广告的广告。
<img>
$xml = simplexml_load_string(file_get_contents("http://feeds.feedburner.com/rb286"));
foreach ($xml->xpath('//item/content:encoded') as $desc) {
preg_match_all('!(?<imgs><img.+?src=[\'"].*?http://feeds.feedburner.com.+?[\'"].+?>)!m', $desc, $>
foreach ($m['imgs'] as $img) {
print $img;
}
}
标记是命名空间,所以如果你想使用simplexml的内置属性映射,你必须像这样处理它:
<content:encoded>
您可以从xpath查询语言here中了解更多信息。