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

Modules Perl Discussion :

[Xml::Simple] lire un arbre


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Par défaut [Xml::Simple] lire un arbre
    Bonjour

    J'ai un peu honte de poser cette question, mais je ne comprends rien.

    J'ai ce xml tout bête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Memory>  
      <Modules>
        <Module name="FIR">111</Module>
        <Module name="BIG">2222</Module>
      </Modules>
    </Memory>
    je souhaite récupérer les valeurs des noeuds Module. Je fais donc ainsi (chose qui a déjà marché chez moi et que j'ai vu dans plein de tuto):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      my $parser = new XML::Simple;
      my $doc = $parser->XMLin($xmlFile);
      foreach my $m(@{$doc->{Modules}->{Module}})
      {
         print "Name: ".$m->{name}."\n";      
         print "Value: ".$m."\n";      
      }
    Mais en exécutant ce script, ca me retourne:
    Not an ARRAY reference en faisant référence à la ligne foreach.

    J'arrive pas à voir ce que je fais de travers...
    Merci d'avance
    K.

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Le mieux pour comprendre comment manipuler l'objet, est sans doute de le dumper :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    use Data::Dumper;
     
    ...
     
    print Data::Dumper->Dump([$doc], [qw(*doc)]);
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    %doc = (
             'Modules' => {
                          'Module' => {
                                      'BIG' => {
                                               'content' => '2222'
                                             },
                                      'FIR' => {
                                               'content' => '111'
                                             }
                                    }
                        }
           );
    Tu constates que $doc{Modules} est une référence de hash dont le premier élément a pour clé Module et la valeur est constituée à nouveau d'une référence de hash, etc...

Discussions similaires

  1. XML : Représentation d'un arbre généalogique simple
    Par cyril77 dans le forum Valider
    Réponses: 3
    Dernier message: 02/04/2009, 11h15
  2. Réponses: 2
    Dernier message: 25/06/2007, 11h07
  3. Problème avec XML::Simple
    Par ViRouF dans le forum Modules
    Réponses: 7
    Dernier message: 10/04/2006, 17h17
  4. problème pour parser un fichier xml avec XML::Simple
    Par black_code dans le forum Modules
    Réponses: 3
    Dernier message: 30/01/2006, 19h32
  5. [XML] comment récupérer un arbre xml posté par http ?
    Par tomperso dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/07/2004, 10h29

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