如何从 RSS 中的描述元素获取图像路径


how to fetch image path from description element in RSS

您好先生,我正在尝试从亚马逊 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(' & ', ' &amp; ', $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 标记的情况下正常工作。