【发布时间】:2017-10-28 08:25:00
【问题描述】:
我编写了以下 PHP 来解析 RSS 和 Atom 提要。这种方法与我见过的其他方法不同,它只是在已解析的 XML 中检查项目数组的几个位置。
function LoadItems($id, $feed)
{
/* Load items into global $rssItems array */
$rssItems = array();
try {
$rss = simplexml_load_file($feed);
} catch (Exception $e) {
echo "<div>Load failed \"" . $feed . "\"</div>\n";
return;
}
if (!($rss->channel->item))
/* This appears to be where Atom feed item lists are parsed to */
$items = $rss->item;
else
$items = $rss->channel->item;
foreach ($items as $item) {
$item = array(
"id" => $id,
"feedTitle" => $rss->channel->title,
"feedLink" => $rss->channel->link,
"itemTitle" => $item->title,
"itemPubDate" => $item->pubDate,
"itemLink" => $item->link,
"itemDesc" => RemoveLinks($item->description));
array_push($rssItems, $item);
}
/*
* Sort all items from all feeds in reverse chronological
* order
*/
usort($rssItems, 'RSS_CMP');
return $rssItems;
}
我的问题是这样的。我偶然发现了这一点。我只是查看解析的 XML 文件的 print_r 输出,并注意到 RSS 和 Atom 的不同结构。这是犹太教吗?我的意思是,simplexml_load_file 是否会将这些项目放在所有原子提要的这个地方?那么此解决方案是否适用于所有使用 simplexml_load_file() 解析的原子提要?
【问题讨论】: