Hello Sir我正在尝试从amazon RSS提要中获取图像路径,但描述标记中有3个不同的图像...我正在使用DOMDocument方法从RSS提要中获取数据...当我尝试获取它获取完整描述的图像路径(所有3个图像路径合二为一),但我只需要第一个主图像路径在我的RSS提要滑块中显示它...需要帮助严重...项目提交的最后日期... < / p>
亚马逊RSS Feed - http://www.amazon.co.uk/gp/rss/bestsellers/electronics/560834/ref=zg_bs_560834_rsslink
以下是检查图像是否正常的测试代码
error_reporting(0);
$rss = new DOMDocument();
$rss->load('http://www.amazon.co.uk/gp/rss/bestsellers/electronics/560834/ref=zg_bs_560834_rsslink');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
'img' => $node->getElementsByTagName('description')->item(1)->getAttribute('src')
);
array_push($feed, $item);
}
$limit = 10;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$description = $feed[$x]['desc'];
$img = $feed[$x]['img'];
$date = date('l F d, Y', strtotime($feed[$x]['date']));
echo $img;
echo "<hr/>";
}
答案 0 :(得分:0)
此行假设图像是说明中的第2项。当您正在阅读其他RSS Feed数据时,它很可能会发生变化。
$node->getElementsByTagName('description')->item(1)->getAttribute('src')
不仅如此,描述通常保存在CDATA块中,这意味着,就您使用的XML解析器而言,其中的HTML是一长串文本。
您真正想要的是获取描述文本,将其解析为HTML,然后获取所有img标记(很可能获得第一个。)确保您的代码在描述中没有img标记的情况下工作。