Bonjour,
Je suis actuellement bloquer.
Je souhaite associer pour chaque bloque //Niv2_Offre de mon xml(ci-dessous) les valeurs présente dans le bloque //Niv1_Operation du fichier xml, les deux bloque sont associés par les valeurs Code_Niv1 présente en //Niv2_Offre et par Code_operation présente en //Niv1_Operation.
Malheureusement je n'arrive pas à faire l'association et la condition que j'ai mis dans mon code,
'si (Code_operation == Code_Niv1)', n'est jamais vrai.
J’espère que je suis clair dans l'explication de mon problème pouvez-vous m'aider svp?
ci-dessous le code php et xml
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
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 $fichier = 'fichier_global_offer.xml'; $xml = simplexml_load_file($fichier); $planOffer = $xml->xpath('//Niv2_Offre'); $planOperation = $xml->xpath('//Niv1_Operation'); $n=0; foreach ($planOperation as $operation) { $operationName = $operation->{"Nom_operation"}; $operationCode = $operation->{"Code_operation"}; $catOne = $operation->{"Categorie_Un"}; $catTwo = $operation->{"Categorie_Deux"}; $arrayNiv1[$n] = array('CODE' => $operationCode, 'NAME' => $operationName, 'CAT1' => $catOne, 'CAT2' => $catTwo); $n++; } $m=0; foreach ($planOffer as $offer) { $code = $offer->{"Informations"}->{"Code"}; $offerName = $offer->{"Informations"}->{"Designation"}; $parentCode = $offer->{"Code"}->{"Code_Niv1"}; $beginDate = $offer->{"Criteres"}->{"Date_de_debut"}; $endDate = $offer->{"Criteres"}->{"Date_de_fin"}; $client = $offer->{"Criteres"}->{"Client"}; $execution = $offer->{"Criteres"}->{"Execution"}; $exclusion = $offer->{"Criteres"}->{"Articles_OUT"}; $canalDistrib = $offer->{"Criteres"}->{"canal_Distribution"}; if(empty($canalDistrib)) { $canalDistrib = "mag"; } if($beginDate && $endDate) { foreach($arrayNiv1 as $valuePlus) { if($parentCode == $valuePlus['CODE']) { $A=$valuePlus['NAME']; $B=$valuePlus['CAT1']; $C=$valuePlus['CAT2']; $desc='cible'.$client.' - opération "'.$valuePlus['NAME'].'" - code'.$code.' '.$offerName.' '.$execution.' // '.$canalDistrib.' Marques exclues : '.$exclusion.' Date de validité : du '.$beginDate.' au '.$endDate; $array_offerPlan[$m]=array('CAT1' => $valuePlus['CAT1'], 'CAT2' => $valuePlus['CAT2'], 'INFO' => $desc, 'BEGIN' => $beginDate, 'END' => $endDate); } } $m++; } }
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 This XML file does not appear to have any style information associated with it. The document tree is shown below. <xmlGlobal> <Niv0_Campagne>...</Niv0_Campagne> <Niv1_Operation> <Nom_operation>ALI_OPE1</Nom_operation> <Code_operation>2231</Code_operation> <Categorie_Deux>Cadeau sans contrainte</Categorie_Deux> </Niv1_Operation> <Niv2_Offre>...</Niv2_Offre> <Niv2_Offre>...</Niv2_Offre> <Niv1_Operation> <Nom_operation>ALI_OP2</Nom_operation> <Code_operation>2234</Code_operation> <Categorie_Un>Reccurrente</Categorie_Un> <Categorie_Deux>Remise totale panier tous clients</Categorie_Deux> </Niv1_Operation> <Niv2_Offre>...</Niv2_Offre> <Niv0_Campagne>...</Niv0_Campagne> <Niv1_Operation> <Nom_operation>ALI TEST OFFRE</Nom_operation> <Code_operation>2242</Code_operation> <Categorie_Un>Mini magasin</Categorie_Un> <Categorie_Deux>Anniversaire Gold</Categorie_Deux> </Niv1_Operation> <Niv2_Offre> <Code> <Code_Niv0>2241</Code_Niv0> <Code_Niv1>2242</Code_Niv1> <Code_Niv2>2243</Code_Niv2> </Code> <Informations> <ID>4</ID> <Date_de_création>06/07/2017</Date_de_création> <Code>2243</Code> <Compteur>0</Compteur> <Designation>ALI TEST OFFRE</Designation> <Benefice_client>TEST valeur champ conditions d'utilisation</Benefice_client> <Financement>Sephora</Financement> <Objectif_de_CA>50</Objectif_de_CA> <Statut>Active - Echue</Statut> <Priorité>3</Priorité> </Informations> <Criteres> <Transaction>Quantity_Item >= 2</Transaction> <Magasins_concernes>30055; 55;</Magasins_concernes> <Execution/> <Perimetre>Sélection de magasin</Perimetre> <canal_Distribution/> </Criteres> <Actions> <Type_de_remise>Action_Reduce %TotalCash 10</Type_de_remise> <Message>Test : Ligne 1 FOOTER; Test : Ligne 2 FOOTER;</Message> </Actions> </Niv2_Offre> <Niv0_Campagne>...</Niv0_Campagne> <Niv1_Operation> <Nom_operation>ALI_OPE3</Nom_operation> <Code_operation>2245</Code_operation> <Categorie_Un>Locale</Categorie_Un> <Categorie_Deux>Remise carte fidélitée</Categorie_Deux> </Niv1_Operation> <Niv2_Offre>...</Niv2_Offre> <Niv2_Offre>...</Niv2_Offre> <Niv1_Operation> <Nom_operation>ALI_OP4</Nom_operation> <Code_operation>2248</Code_operation> <Categorie_Un>Vente Privée</Categorie_Un> <Categorie_Deux>Sephora Salariée</Categorie_Deux> </Niv1_Operation> <Niv2_Offre>...</Niv2_Offre> <Niv0_Campagne>...</Niv0_Campagne> <Niv1_Operation> <Nom_operation>ALI_OP5</Nom_operation> <Code_operation>2251</Code_operation> <Categorie_Un>Partenaire</Categorie_Un> <Categorie_Deux>Prix Barrés</Categorie_Deux> </Niv1_Operation> <Niv2_Offre>...</Niv2_Offre> <Niv2_Offre>...</Niv2_Offre> <Niv0_Campagne>...</Niv0_Campagne> <Niv1_Operation> <Nom_operation>ALI_OPE6</Nom_operation> <Code_operation>2256</Code_operation> <Categorie_Un>Locale</Categorie_Un> <Categorie_Deux>Partenaires ou locales</Categorie_Deux> </Niv1_Operation> <Niv2_Offre>...</Niv2_Offre> <ID>10</ID> </xmlGlobal>
Partager