Bonjour,
J'ai un fichier xml je veux le parcourir et remplir et récupérer les données dans un tableau
Voici un extrait du mon fichier output.xml
Et voici mon code<Vocabulaire>
<Mot Num="0" Nom="أَيْ">
<caractere type="CL">أ</caractere>
<caractere type="VC">َ</caractere>
<caractere type="CL">ي</caractere>
<caractere type="VC">ْ</caractere>
</Mot>
<Mot Num="1" Nom="تْفَضَّلْ">
<caractere type="CS">ت</caractere>
<caractere type="VC">ْ</caractere>
<caractere type="CL">ف</caractere>
<caractere type="VC">َ</caractere>
<caractere type="CS">ض</caractere>
<caractere type="VC">َ</caractere>
<caractere type="CS">ل</caractere>
<caractere type="VC">ْ</caractere>
</Mot>
</Vocabulaire>
Merci de m'aider
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 #!/usr/bin/perl use Data::Dumper; use XML::Twig; use File::Spec; #----------------------------------------------------------- # MAIN #----------------------------------------------------------- my $goodFileXML = 'D:\\Memoire Mastere\\Script\\Script_final\\Script_Grapheme-phoneme\\output.xml'; my $Folder = 'D:\\Memoire Mastere\\Script\\Script_final\\Script_Grapheme-phoneme'; my $RepBase = 'D:\\Memoire Mastere\\Script\\Script_final\\Script_Grapheme-phoneme'; my $FicAraOut1 = File::Spec->catfile( $RepBase, 'outregles.txt' ); open (OUT_Aran, '+>:encoding(UTF-8)', $FicAraOut1 ) or die "Impossible ouvrir fichier $FicAraOut1 en sortie\n"; #Recuperer la liste des path des fichiers dans une hashtable getpath( $goodFileXML, $Folder ); print OUT_Aran "\n"; # Fonctions #----------------------------------------------------------- # On liste les path de chaque fichier *.xml dans une hashFile #----------------------------------------------------------- sub getpath { #retourne la hashMap avec le titre N° et le nom de fichier my ( $goodFileXML, $Folder ) = @_; my $ddate = ""; #passer la date de revision en parametre my $refHash = extractTitle( $goodFileXML, \$ddate, $Folder ); return $refHash; } sub extractTitle { my ( $ficName, $refDate, $Folder ) = @_; %hashFile = (); # Utilisation des handlers my $twig = new XML::Twig( Twig_handlers => { 'Mot' => \&Mot, }, ); # creation d'un objet twig $twig->parsefile($ficName); return; #retourner la référence sur la hashmap } @tabcar=(); @tabtype=(); my $size=scalar(@tabcar); my $sizes=scalar(@tabtype); sub Mot { my($twig,$mot)= @_; print OUT_Aran "Nom : ", $mot->att('Nom'), "\n"; foreach my $TwmotFils ( $mot->children("caractere")) { print OUT_Aran "caractere : "; push(@tabcar,$TwmotFils->text()); for my $i(0..$size-1) { print OUT_Aran $tabcar[$i]; } print OUT_Aran "type : "; push(@tabtype,$TwmotFils->att('type')); for my $j(0..$sizes-1) { print OUT_Aran $tabtype[$j]; } } }
Partager