访问ID / GUID属性isPermaLink

时间:2014-05-14 11:20:32

标签: php rss simplepie xml-attribute

我使用SimplePie来解析php中的RSS提要。为了预处理SimplePie的结果,我需要知道链接是否是永久链接。信息存储在以下XML元素中:

<guid isPermaLink="false">FileNr123</guid>

如果$items是SimplePie objet的一个实例,它代表一个RSS提要项,我可以使用$item->get_permalink来获取固定链接。不幸的是,即使isPermaLink="false"

,也会返回fileName / guid

那么如何访问每个Feed项的isPermaLink属性来对SimplePie输出进行后期处理?

1 个答案:

答案 0 :(得分:1)

选项是使用get_item_tags方法,以便遍历数组并搜索第一个isPermaLink

$guid = $item->get_item_tags('','guid');
$arrIt = new RecursiveIteratorIterator(new RecursiveArrayIterator($guid[0]));
foreach ($arrIt as $sub) {
   $subArray = $arrIt->getSubIterator();
   if (isset($subArray['isPermaLink']) && $subArray['isPermaLink'] == "false") 
       {$isPermalink = false ;break;}
}

这样做有效,但它并不令人满意,因为某些RSS提供商将isPermaLink设置为false,即使该链接长时间正常工作也是如此。