我编写了以下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()解析的所有原子提要?