[php] classe DOM [Résolu/Fermé]

Signaler
Messages postés
84
Date d'inscription
dimanche 22 octobre 2006
Statut
Membre
Dernière intervention
31 mai 2010
-
Messages postés
162
Date d'inscription
lundi 11 mai 2009
Statut
Membre
Dernière intervention
1 septembre 2009
-
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

Messages postés
84
Date d'inscription
dimanche 22 octobre 2006
Statut
Membre
Dernière intervention
31 mai 2010
11
Personne n'a d'idée ?

Thx
Messages postés
162
Date d'inscription
lundi 11 mai 2009
Statut
Membre
Dernière intervention
1 septembre 2009
11
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 ^^
Messages postés
84
Date d'inscription
dimanche 22 octobre 2006
Statut
Membre
Dernière intervention
31 mai 2010
11
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
Messages postés
162
Date d'inscription
lundi 11 mai 2009
Statut
Membre
Dernière intervention
1 septembre 2009
11
de rien ;)