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

Langage PHP Discussion :

simplexml_load_string recuperation data


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut simplexml_load_string recuperation data
    Bonjour,
    Lorsque j'affiche print_r($data->DataContent) ( cf code ci-dessous ), cela me regroupe les balises <media> et <p> ensemble, y a t'il un moyen de garder l'ordre d'affichage présent dans le flux ?


    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
    <?php
    $str='
    <Data>
    <DataContent>
    <media media-type="image" style="leftSide">
    <media-reference data-location="#photo0" mime-type=""/>
    </media>
    <p>
    ddddddddddddddddddddddd
    </p>
    <p>
    ddddddddddddddddddddddd
    </p>
    <p>
    ddddddddddddddddddddddd
    </p>
    <p>
    ddddddddddddddddddddddd
    </p>
    <p>
    ddddddddddddddddddddddd
    </p>
    <media media-type="image" style="rightSide">
    <media-reference data-location="#photo1" mime-type=""/>
    </media>
    <p>
    ddddddddddddddddddddddd
    </p>
    <p>
    ddddddddddddddddddddddd
    </p>
    <p>
    ddddddddddddddddddddddd
    </p>
    </DataContent>
    </Data>
    ';
     
    $data = simplexml_load_string($str);
    echo "<pre>";
    print_r($data->DataContent);
    echo "</pre>";
    ?>

    Affichage :

    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
    75
    SimpleXMLElement Object
    (
        [media] => Array
            (
                [0] => SimpleXMLElement Object
                    (
                        [@attributes] => Array
                            (
                                [media-type] => image
                                [style] => leftSide
                            )
     
                        [media-reference] => SimpleXMLElement Object
                            (
                                [@attributes] => Array
                                    (
                                        [data-location] => #photo0
                                        [mime-type] => 
                                    )
     
                            )
     
                    )
     
                [1] => SimpleXMLElement Object
                    (
                        [@attributes] => Array
                            (
                                [media-type] => image
                                [style] => rightSide
                            )
     
                        [media-reference] => SimpleXMLElement Object
                            (
                                [@attributes] => Array
                                    (
                                        [data-location] => #photo1
                                        [mime-type] => 
                                    )
     
                            )
     
                    )
     
            )
     
        [p] => Array
            (
                [0] => 
    ddddddddddddddddddddddd
     
                [1] => 
    ddddddddddddddddddddddd
     
                [2] => 
    ddddddddddddddddddddddd
     
                [3] => 
    ddddddddddddddddddddddd
     
                [4] => 
    ddddddddddddddddddddddd
     
                [5] => 
    ddddddddddddddddddddddd
     
                [6] => 
    ddddddddddddddddddddddd
     
                [7] => 
    ddddddddddddddddddddddd
     
            )
     
    )
    Merci

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    C'est normal, pour pouvoir mimer le comportement d'un tableau associatif, sxe est bien obligé de rassembler ses enfants directs par nom de tag (on ne peut pas avoir deux fois la même clef dans une tableau associatif) ce qui a pour conséquence de sucrer l'ordre d'apparition du xml d'origine.

    Ce que tu peux faire par contre c'est utiliser la méthode children() qui est un itérateur qui lui respectera l'ordre des nœuds enfants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($data->DataContent->children() as $child) {
        print_r($child);
    }

  3. #3
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. [Doctrine] recuperation data sur une query complexe
    Par erictomcat dans le forum ORM
    Réponses: 26
    Dernier message: 02/03/2012, 13h48
  2. Rapidite PC dans recuperation data avec serialport
    Par cath2123 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/02/2010, 10h26
  3. [RegEx] recuperer data et mettre dans base mysql
    Par amocco dans le forum Langage
    Réponses: 7
    Dernier message: 27/10/2009, 08h44
  4. Recuperation data d'une liste
    Par insa59 dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 09/03/2007, 15h08
  5. Recuperer Data fichier texte
    Par insa59 dans le forum C
    Réponses: 4
    Dernier message: 05/03/2007, 17h02

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