Page 1 sur 1

Parser flux XML + simpleXML

Posté : 29 juin 2008, 14:14
par bbenjj
Bonjour,
J'ai un petit probléme a parser un flux a l'aide de simpleXML, voila ca que j'ai

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1" ?> - <ListeSet> - <Set id="01767"> <DateParution>28/01/2008</DateParution> <Titre>Photo</Titre> <Description>Tres belle photo</Description> <Url>......</Url> <Note>8</Note> </Set> </ListeSet>
<?php 
$xml = simplexml_load_file('test.xml'); 
foreach ($ListeSet-> Set as $info) { 
print $info['id']; 
print $info->Titre; 
print $info->Description; 
print $info->Url; 
print $info->Note; 
} 
?>


et impossible d'afficher quoi que soit, à la place j'ai pleins de messages d'erreur.

Je vous remercie d'avance pour votre aide.

Posté : 29 juin 2008, 14:17
par lux
Salut.

Si tu nous donnais les messages d'erreurs ? C'est la dedans qu'est expliqué ou est l'erreur :P

Posté : 29 juin 2008, 14:23
par bbenjj
voila les erreur :
Image

Posté : 29 juin 2008, 15:00
par katagoto
Je dirait que SimpleXML n'est pas installé...

Posté : 29 juin 2008, 15:00
par lux
Il a des problèmes pour tout charger correctement...

Il y a un espace avant ton : <?xml version="1.0" encoding="iso-8859-1" ?> ?

Car il te dit que cette ligne doit être la première du fichier !

Ensuite t'as des erreurs, car tu as des "-" devant les "<" ... c'est quoi ces "-" ?

Donc en corrigeant comme ça ? :

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1" ?> <ListeSet> <Set id="01767"> <DateParution>28/01/2008</DateParution> <Titre>Photo</Titre> <Description>Tres belle photo</Description> <Url>......</Url> <Note>8</Note> </Set> </ListeSet>

Posté : 29 juin 2008, 15:09
par bbenjj
Effectivement il y avait une erreur dans le fichier xml, grace a t'as correction j'ai pu corriger tous ca, mais il y en a une que persiste :

Code : Tout sélectionner

Warning: Invalid argument supplied for foreach() in /home.10.24/bbenjj/www/test/parser.php on line 3
Ligne 3 :
foreach ($ListeSet-> Set  as $info) { 
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 29 juin 2008, 15:21
par lux
foreach ($ListeSet-> Set as $info)
Ça doit coincer la :
$ListeSet-> Set
Soit l'espace est en trop, soit il faut faire comme ça :
$liste = $ListeSet->Set;
foreach ($liste as $info){}

Posté : 29 juin 2008, 15:35
par bbenjj
Rien a faire, même aprés avoir supprimé l'éspace ou remplacer par
$xml = simplexml_load_file('test.xml'); 
$liste = $ListeSet->Set; 
foreach ($liste as $info)
 { 
...
j'ai toujours la même erreur

Code : Tout sélectionner

Warning: Invalid argument supplied for foreach() in /home.10.24/clitx/www/smart/test/parser.php on line 4

Posté : 29 juin 2008, 15:39
par momox
$ListeSet n'est pas défini étant donné que ta ressource simpleXml est contenu dans $xml.
@++ ;)

Posté : 29 juin 2008, 15:40
par lux
Fais un
print_r($liste);
pour voir ce qu'il y a de beau dans ce tableau.

Comme ça tu verras de suite si foreach peut le lire ou pas. :wink:

Posté : 29 juin 2008, 15:44
par lux
$ListeSet n'est pas défini étant donné que ta ressource simpleXml est contenu dans $xml.
@++ ;)
Ha ben c'est ça j'avais pas vu.

Donc bbenjj tu peux corriger, ça devrait marcher après :wink:

Posté : 29 juin 2008, 15:48
par bbenjj
Parfait ca marche :D :)

Pour ce qui en auront besoin voici le produit finit
<?php 
$xml = simplexml_load_file('test.xml'); 
$liste = $xml->Set; 
foreach ($liste as $info){
 
 print $info['id']; 
 print $info->Titre;
 print $info->Description;
 print $info->Url;
 print $info->Note;
} 
?>  

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1" ?> <ListeSet> <Set id="01767"> <DateParution>28/01/2008</DateParution> <Titre>Photo</Titre> <Description>Tres belle photo</Description> <Url>......</Url> <Note>8</Note> </Set> </ListeSet>
Et encore merci

Posté : 29 juin 2008, 15:49
par lux
Tu peux aller mettre le topic en "Resolu", y a un bouton en haut de la page pour cela :wink:

De rien 8-)