[php] classe DOM

Résolu/Fermé
28_seb Messages postés 84 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 31 mai 2010 - 3 juin 2009 à 17:17
babou054 Messages postés 162 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 1 septembre 2009 - 5 juin 2009 à 13:31
Bonjour,

J'ai un script qui lit un fichier RSS, je le parse avec la classe DOM, cela fonctionne bien pour "lemonde", "libération" mais pas "thenewyorktimes".

Je m'explique : je souhaite récupérer les informations comme le titre, la description, et les images,

mon probleme se situe pour récupérer la balise description :

mon code qui fonctionne pour le monde, libération , le figaro ....


//description
$desc = $item->getElementsByTagName('description');
if ($desc->length > 0) {
$texte = $desc->item(0)->nodeValue; --> je récupère le contenue de la balise
}

le problème c'est pour the newyorktimes car les rss est formé un peu différemment des autres :


<item>
<title>Promised Help Is Elusive for Some Homeowners</title>
<media:description>Eileen Ulery in her condo in Mesa, Ariz. Last year, she lost her job as an executive assistant at Arizona State University.</media:description>
<description>Millions of homeowners appear to qualify for mortgage assistance from the government but aren’t getting help.<br clear="both" style="clear: both;"/>
<br clear="both" style="clear: both;"/>

<a href="http://ads.pheedo.com/click.phdo?s=c9364db1c6044f29aa33577a7e84cf73&p=1"><img alt="" style="border: 0;" border="0" src="http://ads.pheedo.com/img.phdo?s=c9364db1c6044f29aa33577a7e84cf73&p=1"/></a>

</description>
<dc:creator>By PETER S. GOODMAN</dc:creator>
<pubDate>Wed, 03 Jun 2009 14:37:19 GMT</pubDate>
</item>

le problème est qu'il me renvoie le texte contenu dans <media:description> et je souhaiterais la balise <description>.

Merci pour aide

4 réponses

28_seb Messages postés 84 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 31 mai 2010 11
5 juin 2009 à 11:52
Personne n'a d'idée ?

Thx
0
babou054 Messages postés 162 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 1 septembre 2009 11
5 juin 2009 à 12:18
Et si par exemple tu fait
$desc = $item->getElementsByTagName('description');
foreach($desc as $des)
{
$texte = $des;
// en gros la tu va écraser <media:description> avec <description>
// dans le cas ou il y que <description> ca mache aussi
//par contre si <media:description> et apres <description> ca marche pu

}


bon c'est pas tres propre comme code mais ca peut marcher ^^
0
28_seb Messages postés 84 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 31 mai 2010 11
5 juin 2009 à 12:25
Je vois l'idée,

c pas mal du tout, je vais vérifié que <media:description> et toujours après <description>.


Merci pour ton aide
0
babou054 Messages postés 162 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 1 septembre 2009 11
5 juin 2009 à 13:31
de rien ;)
0