Bonjour à tous,
j'ai un fichier xml à parti du quel je vais extraire quelques champs:
j'ai fait le code suivant:
voici un extrait de mon fichier xml :
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"; } } }
ou
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>
<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..
Partager