sanddy Posté 27 Janvier 2009 Posté 27 Janvier 2009 Bonjour, J'ai un gros problème et je n'arrive pas à le résoudre. Je n'arrive pas à afficher plusieurs numéros qui sont entre des balises dans un fichier xml. Cela m'affiche seulement le premier numéro. Un exemple : mon fichier xml a ceci : <Crpcen id="12345" codeNs="xdfsdghrer"> </Crpcen><Crpcen id="43243" codeNs="xdfsdghrer"> </Crpcen><Crpcen id="11111" codeNs="xdfsdghrer"> </Crpcen> Et j'aimerai pouvoir afficher : 12345, 43243, et 11111 seulement, ça m'affiche que le premier id de la premiere balise 12345... Mon code : foreach($XML_files as $file) { $racine = simplexml_load_file($file); $etude = $racine->Crpcen; $groupement[]=$etude["id"]; //echo $etude["id"]; foreach($groupement as $grpt) { echo $grpt; }} $grpt ne m'affiche que 12345... Comment faire, on m'a parlé de tableaux multidimensionnel, mais je ne vois pas comment faire, avez-vous une idée svp ??
captain_torche Posté 27 Janvier 2009 Posté 27 Janvier 2009 C'est juste que ton $etude = $racine->Crpcen; ne va pointer que sur la première de ces balises. Pour que cela fonctionne, il va falloir que tu utilises une boucle foreach : <?phpforeach($racine->Crpcen as $crpcen) {echo $crpcen['id'];}?>
sanddy Posté 28 Janvier 2009 Auteur Posté 28 Janvier 2009 Bonjour, Merci pour votre réponse, ça marche bien sauf que j'avais oublié de préciser que dans chaque balise crpcen, il y avait d'autres balises. Ex : <Crpcen id="12345" codeNs="xdfsdghrer"> <Clef id="l800044336" ></Clef><Clef id="3432434" ></Clef><Clef id="l45435345" ></Clef></Crpcen><Crpcen id="43243" codeNs="xdfsdghrer"><Clef id="3434334" ></Clef></Crpcen><Crpcen id="11111" codeNs="xdfsdghrer"><Clef id="45435544444" ></Clef><Clef id="323" ></Clef></Crpcen> Comment faire pour récupérer dans chaque fichier xml, le crpcen et tous ses clef id. Ici, je voudrai retrouver... 12345 - l800044336 3432434 l45435345 43243 - 3434334 11111 - 45435544444 323 J'ai fait de nombreux tests sans reussir car je ne m'y connais pas bien en tableaux. Pouvez-vous m'aider svp ? J'ai fait ceci dernièrement : foreach($XML_files as $file) {$racine = simplexml_load_file($file); $etude = $racine->Crpcen; foreach($etude as $crp) { $crpcen = $crp['id']; $liste_biens = $etude->Clef; foreach($liste_biens as $bien) { $bie = $bien['id']; echo $crpcen." "; echo $bie."<br /><br />"; } }} et cela m'affiche tous le temps les meme clef id, celui du premier crpcen !! Soit ceci : 12345 - l800044336 3432434 l45435345 43243 - l800044336 3432434 l45435345 11111 - l800044336 3432434 l45435345 11111 - l800044336 3432434 l45435345 11111 - l800044336 3432434 l45435345 11111 - l800044336 3432434 l45435345 11111 - l800044336 3432434 l45435345 11111 - l800044336 3432434 l45435345 11111 - l800044336 3432434 l45435345 11111 - l800044336 3432434 l45435345 11111 - l800044336 3432434 l45435345 ... merci d'avance pour votre aide
sanddy Posté 28 Janvier 2009 Auteur Posté 28 Janvier 2009 Je crois avoir réussi en faisant : foreach($XML_files as $file) {$racine = simplexml_load_file($file); $etude = $racine->Crpcen; foreach($racine->Crpcen as $crpcen) { foreach ($crpcen->Clef as $bi) { echo $crpcen['id']; echo " ".$bi['id']; echo "<br /><br />"; } }} Merci pour votre aide encore et bonne journée
captain_torche Posté 28 Janvier 2009 Posté 28 Janvier 2009 Supprime la ligne $etude = $racine->Crpcen; elle force le script à n'utiliser qu'un seul élément.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant