您好先生,我正在尝试从亚马逊 RSS 提要中获取图像路径,但描述标签中有 3 张不同的图像......我正在使用 DOMDocument 方法从 RSS 提要中获取数据......当我尝试获取图像路径时,它会获取完整的描述(所有 3 个图像路径合二为一),但我只需要第一个主图像路径即可在我的 RSS 提要滑块中显示它......非常需要帮助...项目提交的最后日期...
Amazon RSS 提要 -- 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/>";
}
此行假定图像是描述中的第 2 项。当您阅读其他 RSS 源数据时,它很可能会发生变化。
$node->getElementsByTagName('description')->item(1)->getAttribute('src')
不仅如此,描述通常保存在 CDATA 块中,这意味着就您使用的 XML 解析器而言,在其中找到的 HTML 是一个长文本字符串。
你真正想要的是获取描述文本,将其解析为HTML,然后获取所有img标签(很可能得到第一个)。确保您的代码在描述中没有 img 标记的情况下正常工作。