parser et sauver un flux XML dans une bdd > je sèche

zimounet

WRInaute passionné
Salut tout le monde!

J'ai trop du mal la, le flux se présente sous cette forme:

<nb_reponse>341</nb_reponse>
<Artiste id='7732'>Abba</Artiste>
<Artiste id='7509'>Ace Of Base</Artiste>
<Artiste id='7733'>Adamo</Artiste>
<Artiste id='12991'>Aladin</Artiste>
<Artiste id='13007'>Alain Barriere</Artiste>

Et je veux récupérer la valeur id et l'artiste, et le foutre dans une bdd...

Ne rigolez pas, mais pour le moment, j'en suis la:

Code:
$file = fopen($fichier_xml,"r");
if ($file) {

    while (!feof($file)) $raw .= fread($file,32000);
    fclose( $file );
	list($maximum) = explode("</nb_reponse>", $raw);
	echo "$maximum";

j'arrive juste a obtenir le nombre de valeur...

Qui peux m'aider pour la suite, j'arrive vraiment pas, malgré plein d'essais fantaisistes.
 

mr_go

WRInaute passionné
Effectivement...

Si toutefois tu compte le faire toi même, je te conseille d'utiliser les expressions régulières plutot que explode.

PS: Eclectique ta base de données... ;D
 

mumbly

WRInaute discret
Si le flux est simple tu peux faire comme ca:
Code:
eregi("<nb_reponse>(.*)</nb_reponse>", $raw,$nb_reponse);
echo "Nombre de page :".$nb_reponse[1]."<br>";

echo "<br>";
for($a = 0; $a < $nb_reponse[1]; $a++)
{
$a_balise = explode("<Artiste id=", $raw);
eregi("(.*)</Artiste>",$a_balise[$a+1], $href);
$res = str_replace("'","",$href[1]);
$res = explode(">",$res);
$id = trim($res[0]);
$artiste = trim($res[1]);
echo $id." - ".$artiste."<br>";

// connexion a la base

}
 

Discussions similaires

Haut