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
|
#!/usr/bin/perl -w
use strict;
use locale;
use XML::Simple;
use Data::Dumper;
use XML::Twig;
# 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) = @_;
#créer une map avec le titre et les noms des fichiers
my %hashTitleFic;
# Utilisation des handlers
my $twig = new XML::Twig( Twig_handlers => { 'du-sol' => \&dusol, }, );
# creation d'un objet twig
$twig->parsefile($ficName);
my ($refh) = \%hashTitleFic;
return $refh; #retourner la référence sur la hashmap
}
sub dusol {
my ($twig, $TwigSol, %hashTitleFic, $key) = @_;
my $value = "";
$value= $TwigSol->field('title');
$key= $TwigSol->att('code');
foreach my $TwigRef ( $TwigSol->children('sol-mdata-ref') ) {
$value=$value.";".$TwigRef->att('href');
}
$hashTitleFic{$key} = $value;
# vide de la memoire le contenu de la balise du-sol
#$twig->purge;
return %hashTitleFic;
}
#-----------------------------------------------------------
# MAIN
#-----------------------------------------------------------
my $goodFileXML="c:\\test\\Fichiers\\GoodFile.xml";
my $Folder="c:\\test\\Fichiers";
#Recuperer la liste des path des fichiers dans une hashtable
my %hashFile;
my $refhashFile;
$refhashFile=getpath($goodFileXML, $Folder);
%hashFile=%$refhashFile;
print "FIN\n\n"; |
Partager