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>