Bonjour,
je suis en train de développer un portail et j'aurai besoin de réaliser ma propre classe pour lire des flux RSS, actuellement j'ai trouvé une alternative avec Simple_XML mais bon cela ne me convient pas en tant que développeur, j'aimerai arriver a creuser dans le fonctionnement du code quand on parse du xml plutot que d'utiliser du managé (qui en soit marche très bien pour ce qu'on lui demande de faire).
Voici actuellement ma méthode en utilisant DOMdocument(); mais cela me renvoi une erreur, (pourtant j'ai beau regarder le peu de source sur le sujet ca me semble pas si horrible que ca :D
Erreur retournée:Fatal error: Call to a member function getElementsByTagName() on a non-object in
C:\Program Files\EasyPHP 2.0b1\www\schoolmate\models\CDrssReader.class.php on line
44Methode:public function manualReadXML($url){
// on affecte l'url et le message de test
$this->url = $url;
$ret = '<pre>Test RSS: </pre><br /><br /><ul class="rssFeeds">';
// on récupère le contenu du flux
$this->getContent($url);
// on initialise DOMDocument pour parser le flux
$dom = new DOMDocument();
$dom->load($this->content);
// puis dans le premier <channel>
$channels = $dom->getElementsByTagName('channel')->item(0);
// puis on liste les balise <item>
$dataset = $channels->getElementsByTagName('item'); // c'est elle la ligne 44 ^^
// pour chaque <item> on récupère son <title> et son <link>
for($i = 0; $i < 5; $i++){
$item = $dataset->item($i);
$title = $item->getElementsByTagName("title")->item(0)->nodeValue;
$link = $item->getElementsByTagName("link")->item(0)->nodeValue;
// on retourne cela sous forme de lien
$ret .= '<li class="feed"><a href="'.$link.'" target="_blank">'.$title.'</a></li>';
}
$ret .= '</ul>
return $ret;
}