parsage automatique de plusieurs fichiers se trouvant dans un meme dossier
Publié : 24 avr. 2015, 11:57
Salut a tous je suis nouveau ici et j'ai besoin d'aide je suis pas un bon programmeur mais je me debrouille plus dans le developpement des pages Web(Java ) malheuereusement je n'ai pas pu trouver une place de stage dans ce domaine main j'ai pu trouve dans uns autre domaine n'ayant pas d'autre chois j'ai du accepter cela, malheureusement mon maitre de stage n'est pas une Programmeur il est administrateur de Systeme et c'est meme moi qui lui fait decouvrir certain chose en perl. venons en sur mon Probleme:
J'ai pu implementer un perl-script qui parse le fichiers-xml, mais pour cela il me faut alle dans mon editor perl ecrire les noms de tous mes fichiers, malheureusement j#en possede des milliers de fichiers-xml, et j'aimerai que ce code soit a mesure de retrouver tous les fichiers-xml se trouvant dans un dossier et en suite naturement les parser, sans toute fois que je met a taper dans mon editor le nom de milliers de fichiers. c'est cela mon probleme.
, si je n'en possedait que 4 ou 6 j'aurai tapez les noms dans mon editor-perl et j'aurai recu un resultat a l'immediat
en quelque sorte je pourrai resume de la sorte:
1-(Perl-script + Fichiers-XML) sauvegarder dans un dossier sur mon Ordi
2- Perl-script cherche les fichiers-XML se trouvant dans le dossier
3- perl-script traite (parser) les fichiers_xml
4- perl-script me retourne le result du parsage sur un fichier-text
voila mon script :
comme vous le constaterez la pour plus de clarter le la variable twig 1 parse les attributs name du permier fichier , et la variable twig2 parser le reste de fichier d'apres l'attribut values. j'aimerai bien pouvoir taper sur mon editorperl le genre C: perl sript.pl *.xml et obtenir un resultat. Merci bien de votre aide.
J'ai pu implementer un perl-script qui parse le fichiers-xml, mais pour cela il me faut alle dans mon editor perl ecrire les noms de tous mes fichiers, malheureusement j#en possede des milliers de fichiers-xml, et j'aimerai que ce code soit a mesure de retrouver tous les fichiers-xml se trouvant dans un dossier et en suite naturement les parser, sans toute fois que je met a taper dans mon editor le nom de milliers de fichiers. c'est cela mon probleme.
, si je n'en possedait que 4 ou 6 j'aurai tapez les noms dans mon editor-perl et j'aurai recu un resultat a l'immediat
en quelque sorte je pourrai resume de la sorte:
1-(Perl-script + Fichiers-XML) sauvegarder dans un dossier sur mon Ordi
2- Perl-script cherche les fichiers-XML se trouvant dans le dossier
3- perl-script traite (parser) les fichiers_xml
4- perl-script me retourne le result du parsage sur un fichier-text
voila mon script :
Code : Tout sélectionner
use strict;
use warnings;
use XML::Twig;
use File::Find;
my $file1 = shift or die 'No file1';
my @files = @ARGV or die 'No files';
my $FileResult = 'result.csv';
open( my $FhResult, '>', $FileResult )or die ("Unable to open file $FileResult\n$!");
my $twig1= XML::Twig->new(
twig_handlers => {
'Parameter' => sub {
my $attr_name = $_->{'att'}->{'name'} // 'fault';
print $FhResult $attr_name . ",";
},
},
);
print $FhResult( (split('_', $file1,2))[0] . ',' );
$twig1->parsefile($file1);
for my $file (@files) {
my $twig2 = XML::Twig->new(
twig_handlers => {
'Parameter' => sub {
my $attr_value = $_->{'att'}->{'value'} // 'fault';
print $FhResult $attr_value . ",";
},
},
);
print $FhResult ( split( '_', "\n$file", 2 ) )[0] . ',';
$twig2->parsefile($file);
}
close $FhResult;