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

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

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.

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

Posté : 29 juin 2008, 15:48
par bbenjj
Parfait ca marche
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
De rien
