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..