Page 1 sur 1

Afficher un flux RSS avec simplexml

Posté : 21 août 2009, 00:39
par katosix
Bonsoir,

voila alors j'ai mon code pour lister les titres d'un flux mais comment le modifier pour n'afficher qu'un certain nombre de news ? (et pas toutes)
<?php
$xml = simplexml_load_file("lien-du-flux-rss.xml");
echo '<ul>';
foreach($xml->channel->item as $news) {
	echo '<li><a href="'.$news->link.'">', utf8_decode((string) $news->title), '</a></li>';
}
echo '</ul>'; ?>

Re: Afficher un flux RSS avec simplexml

Posté : 21 août 2009, 01:05
par Victor BRITO
Utilise une boucle for.
$items = $xml->channel->item;
$nb_items = 5; // Disons que tu ne veux afficher que 5 entrées
for ($i = 0; $i < $nb_items; $i ++)
{
  echo '<li><a href="'.$items[$i] -> link.'">'.utf8_decode ((string) $items[$i] -> title).'</a></li>'
}

Re: Afficher un flux RSS avec simplexml

Posté : 21 août 2009, 18:29
par katosix
Merci pour ce code, ça marche mais pas pour les rss donnés en php (par exemple "http://www.phpfrance.com/tutoriaux/rss.php" ne marche pas). Faut il s'y prendre d'une autre manière pour ceux là ?

Re: Afficher un flux RSS avec simplexml

Posté : 21 août 2009, 18:37
par Victor BRITO
Merci pour ce code, ça marche mais pas pour les rss donnés en php (par exemple "http://www.phpfrance.com/tutoriaux/rss.php" ne marche pas). Faut il s'y prendre d'une autre manière pour ceux là ?
Le bout de code donné ci-dessus est valable pour les flux au format RSS 2.0 (le Really Simple Syndication de Dave Winer). Or, celui des tutos de PHPFrance est au format RSS 1.0 (RDF Site Summary, un format plus verbeux issu du RDF) ; pour ce format spécifique, essaie de procéder comme suit :
$items = $xml -> item;
le reste du code demeurant inchangé.

Peut-être ne vais-je pas me hasarder à parler du format Atom (qui est un autre format de syndication de contenu). ;)