和了SimplePie属性get_item_tags

问题描述:

我使用到了SimplePie解析不同的RSS提要,将它们传递给Smarty的模板,我需要从每个项目行,在这个例子中读取返回属性:NEWSX和了SimplePie属性get_item_tags

<source url="http://whatever.url/"><![CDATA[NEWSX]]></source> 

我发现get_item_tags方法将选择使用以下内容的行和属性:

$newssource = $item->get_item_tags('','source'); 

这是我的问题。我不知道如何对各源极连接到一个项目使用以下代码时(使得基本上我可以沿着通常的标题,链接,描述每个时间等显示不同的源元件):

$RSS = array(); 
foreach($items as $item){ 
    $feed = $item->get_feed(); 
    $tmp=array(); 

    $newssource = $item->get_item_tags('','source'); 
    echo $newssource[0]["data"]; 

    if ($feed){ 
     if ($enclosure = $item->get_enclosure()){ 
      $tmp['title'] = $item->get_title(); 
      $tmp['permalink'] = $item->get_permalink(); 
      $tmp['thumbnail'] = $enclosure->get_thumbnail(); 
      $tmp['description'] = $enclosure->get_description(); 
      $tmp['image'] = $enclosure->get_link(); 
     } 
     $tmp['date'] = $item->get_date('j M Y'); 
     $tmp['content'] = $item->get_content(); 
     $tmp['title'] = $item->get_title(); 
     $tmp['link'] = $item->get_link(); 
     $tmp['description'] = $item->get_description(); 

     array_push($RSS, $tmp); 
    } 

} 

可以这样做吗?预先感谢任何帮助或建议。

所以这是解决方案:

$RSS = array(); 
foreach($items as $item){ 
$feed = $item->get_feed(); 
$tmp=array(); 

if ($feed){ 
    $tmp['date'] = $item->get_date('j M Y, g:i a'); 
    $tmp['content'] = $item->get_content(); 
    $tmp['title'] = $item->get_title(); 
    $tmp['link'] = $item->get_link(); 
    $tmp['description'] = $item->get_description(); 
    $tmp['source'] = $item->get_item_tags('','source')[0]["data"]; 

    array_push($RSS, $tmp); 
    } 
} 

$smarty->assign($params['assign'], $RSS); 

而且在Smarty模板:

<div class="cont"> 
    <a href="{$entry.link}" target="_new">{$entry.title}</a> 
    <br /> 
    <span class="date">Published on: <strong>{$entry.date}</strong></span><br /> 
    <span class="source">Via : <strong>{$entry.source}</strong></span><br /> 
</div>