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 :

Problème avec la librairie XML::Bare


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut Problème avec la librairie XML::Bare
    Bonjour à tous,

    j'ai un problème avec la librairie XML::Bare de Perl (dans sa dernière version).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        my $xml_file = new XML::Bare( file => "ref/ref.xml" ) or die "Impossible
            d'ouvrir le fichier ref/ref.xml";
        my $root = $xml_file->parse();
     
        $xml_file->find_by_perl($root->{ISMP}->{Product}, "-ProductName =~
                /ftp/i");
     
        return $error;
    }
    Mais j'ai cette erreur :
    Not a array reference at /.../.../.../Bare.pm line 410.
    Un extrait de Bare.pm :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sub find_by_perl {
      my $arr = shift;
      my $cond = shift;
      $cond =~ s/-([a-z]+)/\$ob->\{'$1'\}->\{'value'\}/g;
      my @res;
      foreach my $ob ( @$arr ) { push( @res, $ob ) if( eval( $cond ) ); }
      return \@res;
    }
    La ligne 410 correspond à celle du foreach.

    Je ne comprend pas pourquoi j'ai cette erreur. La fonction find_by_perl est définie dans la doc :
    http://search.cpan.org/~codechild/XM...dule_Functions


    Merci.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Essaye plutôt ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my $test = $root->{ISMP}->{Product} . "-ProductName =~ /ftp/i";
    $xml_file->find_by_perl($test);

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    Merci de ta réponse djibril. Malheureusement cela ne fonctionne pas, j'ai toujours la même erreur.

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Peux tu nous montrer le fichier ref.xml ?
    Et quel est le but de ton programme ? Car si tu souhaites analyser un fichier XML, je ne te recommande pas ce module. Lis cette article qui t'aidera.

  5. #5
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    Un petit bout de ref.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ISMP>
        <Product>
            <ProductName>basesystem</ProductName>
            <ProductVersion>8.0-5.1.1</ProductVersion>
            <ProductInstall>2010-03-27 07:14:37</ProductInstall>
        </Product>
    </ISMP>
    J'avais déjà vu la page sur les différentes librairies XML et j'avais choisis XML::Bare justement pour la fonction find_by_perl, qui me permet (normalement) de parcourir facilement l'arbre XML et faire des expressions régulières sur la valeur d'un noeud. Je n'ai pas vu que l'on pouvait le faire avec les 2 librairies conseillées dans ton lien.

Discussions similaires

  1. Problème avec la librairie POI
    Par clement42 dans le forum Documents
    Réponses: 3
    Dernier message: 18/11/2005, 19h11
  2. Problème avec le parser XML
    Par sheura dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 09/11/2005, 18h26
  3. [GD] Problème avec la librairie GD et les header !!
    Par jesspepette dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/10/2005, 12h09
  4. Problème avec la librairie rfunc sous Firebird
    Par yayelix dans le forum SQL
    Réponses: 4
    Dernier message: 17/05/2005, 16h49
  5. Problème avec les librairies ZLIB et LIBPNG
    Par VenusX117 dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 14/03/2005, 14h49

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