Bonjour,
j'avoue ne pas comprendre.
Je dois traiter l'XML d'un fournisseur pour utiliser ses données dans divers scripts
Extrait :
Code xml : 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 <cat1 id="15202" name="ACCESSOIRE"> <cat2 id="20463" name="Electricité / Pile"> <cat3 id="15995" name="Pile / Chargeur"> <cat4 id="20468" name="Pile Alcaline"/> <cat4 id="20469" name="Pile rechargeable"/> <cat4 id="20470" name="Pile bouton"/> <cat4 id="20471" name="Chargeur"/> <cat4 id="21665" name="Accessoire"/> </cat3> <cat3 id="20464" name="Bloc d'alimentation"> <cat4 id="20464" name="Bloc d'alimentation"/> </cat3> <cat3 id="20465" name="Multiprises / Parasurtenseur"> <cat4 id="20465" name="Multiprises / Parasurtenseur"/> </cat3> <cat3 id="20466" name="Rallonge électrique"> <cat4 id="20466" name="Rallonge électrique"/> </cat3> </cat2> <cat2 id="21746" name="Guide et catalogue"> <cat3 id="22680" name="Extra"> <cat4 id="22680" name="Extra"/> </cat3> <cat3 id="22681" name="ProxiConfort"> <cat4 id="22681" name="ProxiConfort"/> </cat3> <cat3 id="22682" name="BlancBrun"> <cat4 id="22682" name="BlancBrun"/> </cat3> <cat3 id="22683" name="Domial"> <cat4 id="22683" name="Domial"/> </cat3> <cat3 id="22684" name="Neutre"> <cat4 id="22684" name="Neutre"/> </cat3> </cat2> <cat2 id="21817" name="Prestations et produits non classés (ne pas modifi"> <cat3 id="21818" name="Prestations"> <cat4 id="21818" name="Prestations"/> </cat3> <cat3 id="21819" name="Produits non classés"> <cat4 id="21819" name="Produits non classés"/> </cat3> <cat3 id="21827" name="Garanties"> <cat4 id="21827" name="Garanties"/> </cat3> </cat2> <cat2 id="21845" name="Affichage"> <cat3 id="21846" name="Tableau ardoise lumineux"> <cat4 id="21846" name="Tableau ardoise lumineux"/> </cat3> </cat2> <cat2 id="22687" name="Mobilier"> <cat3 id="22687" name="Mobilier"> <cat4 id="22687" name="Mobilier"/> </cat3> </cat2> </cat1>
Ce fichier semble mal construit mais je ne peux pas imposer des changements au fournisseur.
Il contient de multiples valeurs en double, voire en triple.
Du coup, dans mes boucles de traitement, je mets des conditions ($cat2_id) sur l'ID des catégories pour comparer avec $cat1_id.
Ensuite, je réitère avec $cat3_id vs $cat2_id et $cat4_id vs $cat3_id dans mes boucles internes.
Code php : 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 while (isset($xml->catalogue[0]->cat1[$count1]->cat2[$count2])) { $cat2_id = $xml->catalogue[0]->cat1[$count1]->children()->cat2[$count2]['id']; $cat2_name = ucfirst(strtolower($xml->catalogue[0]->cat1[$count1]->children()->cat2[$count2]['name'])); if ($cat2_id <> $cat1_id) { echo '<h4><span style="margin-left:50px;display:inline-block">>> '.$cat2_id.' : '.$cat2_name; $norm = $cat1_name."::1::1::1/".$cat2_name."::1::1::1"; echo ' '.$norm.'</span></h4><br>'; $read = Read($cat1_id,$mysqli); $path = $read."::1::1::1/"; $read = Read($cat2_id,$mysqli); $path .= $read."::1::1::1"; //echo $path;exit(); $write = Write($cat2_id,$path,$mysqli); }
Dans ce cas , la condition n'est pas prise en compte et toutes les sous-cat sont affichées (doublons, triplons : cf. cat 22687)
En revanche, si je teste $cat2_name, cela fonctionne.
Ce n'est pas grave en soit mais après un long moment passé sur cette anomalie, j'aimerais comprendre .
Merci pour votre aide.
Partager