Como extrair informação de um feeder RSS por PHP?
Monday, February 18th, 2008Este artigo visa explicar como extrair informação de um feed RSS. Começamos por dois pedaços de código, o XML do feed e o PHP parsing do mesmo.
<?xml version=”1.0″ encoding=”UTF-8″?>
<rss version=”2.0″>
<channel>
<title>Softs</title>
<link>
http://www.softarea51.com/windows/Web_Development
</link>
<description>Try and buy latest XML</description>
<language>en-us</language>
<image>
<title>SoftArea51 - latest XML & CSS Utilities software for Windows</title>
<link>http://www.softarea51.com/</link>
<description>
Try and buy latest XML & CSS Utilities software for Windows
</description>
</image>
</item>
</channel>
</rss>
De forma a obter dados do ficheiro RSS, devemos criar um loop através dos vários nodes (item nodes) e extrair a informação que pretendemos. O script que se segue faz o parsing do RSS feed acima descrito
<?php
$doc = new DOMDocument();
$doc->load(’http://www.sitename.com/rss/the.xml’);
$arrFeeds = array();
foreach ($doc->getElementsByTagName(’item’) as $node) {
$itemRSS = array (
‘title’ => $node->getElementsByTagName(’title’)->item(0)->nodeValue,
‘desc’ => $node->getElementsByTagName(’description’)->item(0)->nodeValue,
‘link’ => $node->getElementsByTagName(’link’)->item(0)->nodeValue,
‘date’ => $node->getElementsByTagName(’pubDate’)->item(0)->nodeValue
);
array_push($arrFeeds, $itemRSS);
}
?>