Bonjour,
Je parse un flux xml dans lequel je récupère les éléments ainsi que les attributs des éléments afin de les insérer dans une base de données mysql.
Le flux étant conséquent (10 000 produits environs), au fur et a mesure que je parse mon flux je mets les valeurs dans un array pour pouvoir envoyer a la fin du script tout l'array dans ma BDD.
Voici mon flux, mon script et le resultat (qui me pose problème), raccourci au maximum pour ne garder que le problème.
Le flux
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?xml version="1.0" encoding="utf-8"?> <catalogue> <product id="3712570687" number="3009703025074645"></product> <product id="3712570689" number="3009703027074015"></product> </catalogue>
Le script:
Affichage généré par le script:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <?php $nouveau_art = array(); // creation d'un tableau $catalogue = simplexml_load_file('http://www.mon-flux.xml'); // Je converti mon fichier xml en objet. $i=0; //S'incrémente de 1 à chaque produit du flux. foreach($catalogue->product as $product) // Je parse le flux. { foreach($catalogue->product[$i]->attributes() as $a => $b) { ${$a} = $b; // la variable $id contient l'id et $number le number_produit } $i=$i+1; // Je passe au produit suivant. echo $id . '<br />'; // Un echo pour voir ce que contient $id echo $number . '<br />'; // Un echo pour voir ce que contient $number $nouveau_art []= array ('id_produit' => $id, 'number_produit' => $number); // Je mets les valeurs dans un tableau. } // Fin du foreach parsage du flux. // J'affiche le tableau pour voir ce qu'il contient. echo '<pre>'; print_r($nouveau_art); echo '</pre>'; ?>
Donc voila mon probléme.3712570687
3009703025074645
3712570689
3009703027074015
Array
(
[0] => Array
(
[id_produit] => SimpleXMLElement Object
(
[0] => 3712570687
)
[number_produit] => SimpleXMLElement Object
(
[0] => 3009703025074645
)
)
[1] => Array
(
[id_produit] => SimpleXMLElement Object
(
[0] => 3712570689
)
[number_produit] => SimpleXMLElement Object
(
[0] => 3009703027074015
)
)
)
Dans ce script je fais echo pour voir ce que contiennent mes variables et il m'affiche bien l'id et le number, donc OK
Ensuite je met tous cela dans un tableau et quand je regarde ce qu'il y a dans la tableau j'ai
SimpleXMLElement Object
(
[0] => 3712570687
)
alors que je ne veux que 3712570687.
Comment puis-je faire ?
J'ai essayé 2, 3 trucs sans succès et qui font usine a gaz..
Merci de votre aide.
Partager