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 Perl Discussion :

fichier xml avec perl


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 29
    Points : 23
    Points
    23
    Par défaut fichier xml avec perl
    Bonjour à tous,

    j'ai un fichier xml à parti du quel je vais extraire quelques champs:

    j'ai fait le code suivant:
    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
     
        use strict;
        use warnings;
        use XML::Simple;
        my $parser = XML::Simple->new( KeepRoot => 1 );
     
     
     
        # Création du fichier résultat
        my $FichierResulat = '/result';
     
     
        open( my $FhResultat, '>', $FichierResulat )or die("Impossible d'ouvrir le fichier $FichierResulat\n$!" );
     
     
        my $doc = $parser->XMLin('/essai.xml');
     
     
        foreach my $words ( @{ $doc->{dict}->{word} } ) {
        my $word=  $words->{value}; 
     
                $word =~ s/^\s+|\s+$//g;
        if($word eq "استمارة" )
        {
        print {$FhResultat} "$word"; 
        print "ok";
        }
        else
        {print "not ok";}
        print {$FhResultat} "$word:\n"; 
     
        foreach my $senses (@{ $words->{'sense'} }) {
        my $gloss= $senses->{def};
        print {$FhResultat} "$gloss\n"; 
        }
        }
     
        }
    voici un extrait de mon fichier xml :
    Code xml : 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
    <dict>
    <word value="استمارة">
    <sense>
    <ids>1</ids>
    <def>استمارة ورقة تتضمّن بيانات معيّنة خاصَّة بمن يقوم بملئها وتقدَّم عند الالتحاق بمدرسة أو وظيفة أو أي أغراض أخرى ملأ استمارة الشهادة الثانويَّة استمارة قبول استمارة خاصّة تقدَّم للالتحاق بمعهد </def>
    </sense>
    <sense>
    <ids>2</ids>
    <def>استمارة ورقة تتضمّن بيانات معيّنة خاصَّة بمن يقوم بملئها وتقدَّم عند الالتحاق بمدرسة أو وظيفة أو أي أغراض أخرى ملأ استمارة الشهادة الثانويَّة استمارة قبول استمارة خاصّة تقدَّم للالتحاق بمعهد </def>
    </sense>
    </word>
    <word value="استوديو">
    <sense>
    <ids>1</ids>
    <def> أُسْتُوديو إسْتُوديو ستوديو مكتب الرسَّام والنحّات أو المصوّر الفوتوغرافيّ أخذت صوري من الاستوديو </def>
    </sense>
    <sense>
    <ids>2</ids>
    <def> مكتب لدراسة فنّ من الفنون كالرقص والغناء والتمثيل تدرّب على الغناء في الاستوديو </def>
    </sense>
    </word>        
    </dict>
    ou
    <dict>
    <word value="استمارة">
    <sense>
    <ids>1</ids>
    <def>استمارة ورقة تتضمّن بيانات معيّنة خاصَّة بمن يقوم بملئها وتقدَّم عند الالتحاق بمدرسة أو وظيفة أو أي أغراض أخرى ملأ استمارة الشهادة الثانويَّة استمارة قبول استمارة خاصّة تقدَّم للالتحاق بمعهد </def>
    </sense>
    <sense>
    <ids>2</ids>
    <def>استمارة ورقة تتضمّن بيانات معيّنة خاصَّة بمن يقوم بملئها وتقدَّم عند الالتحاق بمدرسة أو وظيفة أو أي أغراض أخرى ملأ استمارة الشهادة الثانويَّة استمارة قبول استمارة خاصّة تقدَّم للالتحاق بمعهد </def>
    </sense>
    </word>
    <word value="استوديو">
    <sense>
    <ids>1</ids>
    <def> أُسْتُوديو إسْتُوديو ستوديو مكتب الرسَّام والنحّات أو المصوّر الفوتوغرافيّ أخذت صوري من الاستوديو </def>
    </sense>
    <sense>
    <ids>2</ids>
    <def> مكتب لدراسة فنّ من الفنون كالرقص والغناء والتمثيل تدرّب على الغناء في الاستوديو </def>
    </sense>
    </word>
    </dict>

    J'ai rencontré le problème suivant:


    pourquoi si mon fichier xml contient seulement un seul élement dans <word> il m'affiche l'erreur suivante : Not an ARRAY reference at /home/lenovo



    Merci d'avance..

  2. #2
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771

Discussions similaires

  1. mettre à jour un fichier xml avec perl
    Par hasna2013 dans le forum Langage
    Réponses: 1
    Dernier message: 03/04/2013, 14h40
  2. Manipulation d'un fichier XML avec Perl
    Par brahak dans le forum Modules
    Réponses: 3
    Dernier message: 01/05/2006, 22h36
  3. Modification de fichier XML avec XSLT
    Par osmoz dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/07/2005, 11h04
  4. [DOM] [Débutant(e)] Modifier un fichier XML avec DOM
    Par macks dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 05/07/2005, 14h13
  5. parser des fichier .xml en perl
    Par djibril dans le forum Modules
    Réponses: 13
    Dernier message: 18/05/2004, 17h08

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