Quantcast
Channel: Parsing Atom Feed in PHP - Stack Overflow
Viewing all articles
Browse latest Browse all 2

Parsing Atom Feed in PHP

$
0
0

I've written the following PHP to parse RSS and Atom feeds. This approach differs from others I've seen in that it simply checks a couple of places in the parsed XML for the item array.

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;}

My question is this. I discovered this by accident. I was just looking at the print_r output of the parsed XML files and noticed the different structures for RSS and Atom. Is this kosher to do? I mean, is simplexml_load_file going to put these items in this place for all atom feeds? Is this solution then applicable to all feeds that are atom that are parsed with simplexml_load_file()?


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images