Page 1 sur 1

Parser un flux xml

Posté : 30 juin 2008, 14:47
par bbenjj
Bonjour,
J'ai réussi a parser un flux xml mais y a une partie ou je bloque :
Flux xml :

Code : Tout sélectionner

<flux> <ListeContenu> <Contenu> <Titre>musique popo</Titre> <ListeExtrait> <Extrait>test1</Extrait> <Extrait>test2</Extrait> <Extrait>test3</Extrait> <Extrait>test4</Extrait> </ListeExtrait> </Contenu> <ListeContenu> </flux>
Pour le titre il ni a pas de probléme, mais pour la partie contenu entre ListeExtrait je bloque
<?
if($xml = simplexml_load_file("flux.xml")) {

   $xml = $xml->ListeContenu;

       foreach($xml->Contenu as $Contenu) {
       $titre = $Contenu->Titre;
       echo "$titre";
   }

}
?> 
Je vous remercie d'avance pour votre aide

Posté : 30 juin 2008, 14:54
par katagoto
Bonjour

Je vais tenté de te mettre sur la voix, pourquoi ne fait tu pas une boucle pour lister le dernier noeud, sâche que pour accéder à un sous objet, c'est très simple : $objet->sousobjet->methode()...

Ca devrait t'aider...

Posté : 30 juin 2008, 15:12
par bbenjj
Merci de t'as réponse,
j'ai essayé ca, mais ca marche pas
while($xml->Contenu->Extrait[$j]) {
echo "".$xml->Contenu->Extrait[$j]."" ;
$j++ ;
}

Posté : 30 juin 2008, 16:11
par katagoto
Pour n'as tu pas fais un truc dans ce genre :
foreach($xml->Contenu->Extrait as $extrait) { 
    echo $extrait; 
}

Posté : 30 juin 2008, 16:17
par bbenjj
<?
if($xml = simplexml_load_file("flux.xml")) {

   $xml = $xml->ListeContenu;
   foreach($xml->Contenu->Extrait as $extrait) {  
   echo $extrait;  
} 
}
?> 
Ca me donne une page blanche :(

Posté : 30 juin 2008, 16:20
par katagoto
ah euh, doit y avoir une erreur de nom, si y a pas d'erreur affiché je vois que ça :?

Posté : 30 juin 2008, 16:25
par bbenjj
Faudrait-il pas definir Extrait1 Extrait2 .. ?
car j'ai vérifier tous les noms et page blanche quand même
<?
if($xml = simplexml_load_file("flux.xml")) {

   $xml = $xml->ListeContenu;
   foreach($xml->Contenu->Extrait as $extrait) {  
   echo $extrait;  
} 
}
?> 

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1"?> <flux> <ListeContenu> <Contenu> <Titre>musique popo</Titre> <ListeExtrait> <Extrait>test1</Extrait> <Extrait>test2</Extrait> <Extrait>test3</Extrait> <Extrait>test4</Extrait> </ListeExtrait> </Contenu> </ListeContenu> </flux>

Posté : 01 juil. 2008, 10:43
par bbenjj
c'est bon j'ai trouvé :
<?
$xml = simplexml_load_file(""flux.php");
for ($i = 1; $i <= 29; $i++) {
foreach($xml->ListeContenu->Contenu[$i]->ListeExtrait[0] as $extrait)
{  
   echo $extrait.'<br>';  
} 
}
?> 
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]