IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[XML] Analyse du fichier complet pour avoir un tableau


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 30
    Points : 22
    Points
    22
    Par défaut [XML] Analyse du fichier complet pour avoir un tableau
    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

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    essaye d'utiliser SimpleXML :
    http://php.net/simplexml
    GNAP !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    merci

    en effet, c'est beaucoup plus simple
    j'ai réussi a faire exactement ce que je voulais

    merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XML] Analyser un fichier XML
    Par Cvbdev dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 03/05/2009, 16h41
  2. [XML] Analyser un fichier SVG
    Par air1ontheweb dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 27/10/2008, 14h08
  3. ou mettre le fichier .jar pour avoir une nouvelle librairie?
    Par nina8 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 25/06/2008, 15h22
  4. [XML] Analyser un fichier XML en PHP
    Par aroua dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/07/2007, 11h07
  5. parser fichier texte pour avoir un doc html !!
    Par avogadro dans le forum Débuter
    Réponses: 4
    Dernier message: 30/03/2006, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo