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

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');                        
                        }                
                }
j'aimerai avoir cela si possible ou dans le style (cela fait deux jours que je teste mais sans succès) :
Résultat souhaité :

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 &amp; Fleurs
                        [id] => 9
                        [refinements]=>false
                        [catalogs]=>false
                        [Category]=>array                        
                )
 
                ....etc....
        )
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
 
 
<?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 &amp; 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