Bonjour
j'ai un petit souci avec DOM pour passer un xml en array
voici mon bout de code, j'ai supprimé le reste qui ne fonctionnais pas , du coup j'en suis arrivé qu'au premier niveau de l'arbre
je n'arrive pas a mettre en place la fonction recursive pour avoir l'arborescence complete dans mon tableau
j'aimerai avoir cela si possible ou dans le style (cela fait deux jours que je teste mais sans succès) :
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 $doc = new DOMDocument(); if (!$doc->load($url)) throw new Exception('load impossible'); echo ('<h2>LOAD XML Ok</h2>'); $headline = array(); $cat = $doc->getElementsByTagName('Category')->item(0); foreach($cat->childNodes as $i) { if($i->hasChildNodes() == true){ $headline[$i->getAttribute('name')]['id'] = $i->getAttribute('id'); $headline[$i->getAttribute('name')]['catalogs'] = $i->getAttribute('catalogs'); $headline[$i->getAttribute('name')]['name'] = $i->getAttribute('name'); $headline[$i->getAttribute('name')]['refinements'] = $i->getAttribute('refinements'); } }
Résultat souhaité :
Extrait du xml :
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
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 array( [0] => Array ( [name]=> Auto et Moto [id] => 1 [refinements]=>false [catalogs]=>false [Category]=>array ( [0]=> array ( [id]=>2 [name]=>Auto [refinements]=>false [catalogs]=>false [0]=> array ( [nom]=>Accessoire Auto [id]=>3 [refinements]=>true [catalogs]=>false ) [1]=> array ( [nom]=>Accessoire GPS [id]=>4 [refinements]=>true [catalogs]=>false ) ) [1]=> array ( [id]=>5 [name]=>Moto et 2 roues [refinements]=>false [catalogs]=>false [0]=> array ( [nom]=>Accessoires Moto [id]=>6 [refinements]=>true [catalogs]=>false ) [1]=> array ( [nom]=>Moto Neuve et d'Occasion [id]=>7 [refinements]=>true [catalogs]=>false ) ) [2]=> array ( [id]=>8 [name]=>Moto et 2 roues [refinements]=>false [catalogs]=>false ) ) ) [1]=> Array ( [nane]=> Cadeaux & Fleurs [id] => 9 [refinements]=>false [catalogs]=>false [Category]=>array ) ....etc.... )
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<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <CategorySearch format="Tree" id="100" xmlns="urn:prods"> <Category catalogs="false" id="100" name="Home Page" refinements="false"> <Category catalogs="false" id="1" name="Auto et Moto" refinements="false"> <Category catalogs="false" id="2" name="Auto" refinements="false"> <Category catalogs="false" id="3" name="Accessoires Auto" refinements="true"/> <Category catalogs="false" id="4" name="Accessoires GPS" refinements="true"/> </Category> <Category catalogs="false" id="5" name="Moto et 2 Roues" refinements="false"> <Category catalogs="false" id="6" name="Accessoires Moto" refinements="true"/> <Category catalogs="false" id="7" name="Moto Neuve et d'Occasion" refinements="true"/> </Category> <Category catalogs="false" id="8" name="Services Auto et Moto" refinements="false"/> </Category> <Category catalogs="false" id="9" name="Cadeaux & Fleurs" refinements="false"> <Category catalogs="false" id="10" name="Jeux et Loisirs" refinements="false"/> <Category catalogs="false" id="11" name="Cadeaux pour une occasion" refinements="false"> <Category catalogs="false" id="12" name="Noël" refinements="false"/> </Category> </Category> ... </Category> </Category>
merci
Partager