php et mysql

Mammouth du PHP | 504 Messages

01 juin 2012, 15:41

bonjour a tous,

J'ai un petit soucis sur un simple_xml en php et un fichier xml comme suit:

Code : Tout sélectionner

<rss version="2.0"> <channel> <item> <title>45470 / poussette elea bebe confort oct 2011</title> <pubDate>Fri, 25 May 2012 10:32:07 +0200</pubDate> <description> JE VEND UNE POUSSETTE ELEA BEBE CONFORT AVEC SON OMBRELLE CARREE DE OCTOBRE 2011 FACTURE ET MANUEL JOINT MAMAN TRES SOIGNEUSE ETAT IMPECCABLE ... </description> </item> </channel> </rss>
je le traite comme suit:

<?php
$channel = simplexml_load_file('test2.xml');
foreach ($channel->item as $item) {
print "Titre : {$item->title} <br />\n";
print "Auteur : {$item->description} <br />\n";
}
?>

ça ne fonctionne pas ??

Aurai je un oubli ou un truc qui ne va pas?

Merci de votre aide

ViPHP
ViPHP | 2577 Messages

01 juin 2012, 15:51

Ajoute var_dump($channel) pour voir ce que tu as lu.

Autrement, difficile de touver quand on sait juste que "ca ne marche pas". Une indication sur un message d'erreur...

Mammouth du PHP | 504 Messages

01 juin 2012, 17:24

Re bonjour,

@ Mazarini:

Voici ce qu'il me retourne sur le var_dump($channel):

Code : Tout sélectionner

object(SimpleXMLElement)#1 (2) { ["@attributes"]=> array(1) { ["version"]=> string(3) "2.0" } ["channel"]=> object(SimpleXMLElement)#3 (1) { ["item"]=> object(SimpleXMLElement)#2 (6) { ["title"]=> string(44) "45470 / poussette elea bebe confort oct 2011" ["pubDate"]=> string(31) "Fri, 25 May 2012 10:32:07 +0200" ["description"]=> string(147) " JE VEND UNE POUSSETTE ELEA BEBE CONFORT AVEC SON OMBRELLE CARREE DE OCTOBRE 2011 FACTURE ET MANUEL JOINT MAMAN TRES SOIGNEUSE ETAT IMPECCABLE ... " } } }
Merci de ton aide

ViPHP
xTG
ViPHP | 7331 Messages

01 juin 2012, 18:38

Tu as un index channel dans ta variable channel avant de pouvoir accéder à l'index item. ;)

Mammouth du PHP | 504 Messages

01 juin 2012, 19:31

bonjour xTG,

Tu as un index channel dans ta variable channel avant de pouvoir accéder à l'index item. ???

J'ai pas compris un index dans la variable channel. Merci de ton aide.

ViPHP
xTG
ViPHP | 7331 Messages

01 juin 2012, 19:41

Un index ou un attribut si tu préfères.

Mammouth du PHP | 504 Messages

04 juin 2012, 16:29

Pour cet index channel dans ma variable channel, je peux le traiter ainsi:

Code : Tout sélectionner

<?php $xml = simplexml_load_file('test2.xml'); foreach ($xml->channel as $channel) { foreach ($channel->item as $item) { print "Titre : {$item->title} \n"; print "Auteur : {$item->description} \n"; } } ?>
Merci de votre aide.

Mammouth du PHP | 504 Messages

04 juin 2012, 16:31

ok, ça marche a part un problème de caractère: après

Mammouth du PHP | 504 Messages

04 juin 2012, 16:39

En fait j'ai mon xml qui contient des champs <![CDATA[, comment faire pour lire ces contenu en bon format de lecture ?

Mammouth du PHP | 504 Messages

04 juin 2012, 17:44

ça marche.

Merci a tous.