|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() PierJean Étudiant Inscription : mai 2010 Messages : 26 ![]() |
Bonjour,
j'ai suivi le tuto http://djibril.developpez.com/tutoriels/perl/perl-xml/ pour parses un fichier XML et ça marche impeccable. Maintenant j'ai plusieurs fichiers XML dans un dossier et j'aimerai tous les parser. Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Laurent R.Conseil - Consultant en systèmes d'information Inscription : mai 2012 Messages : 588 ![]() |
Quelque chose comme cela (non testé), en supposant que tous les fichiers XML sont dans le répertoire courant:
Code :
__________________
Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés. |
||
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() ![]() Inscription : avril 2009 Messages : 2 678 ![]() |
Autre solution, si le traitement de tous les fichiers est équivalent au traitement de la concaténation de tous les fichiers :
- tu passes en paramètre au script, la liste de tous les fichiers à traiter - tu utilises while (<>) au lieu d'ouvrir le fichier et d'utiliser while(<$FIC>)
__________________
Plus j'apprends, et plus je mesure mon ignorance (philou67430) Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book) Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé Using strict and warnings is good for you. |
|
|
00
|
|
|
#4 | ||
|
Invité régulier
![]() PierJean Étudiant Inscription : mai 2010 Messages : 26 ![]() |
Merci pour vos réponses.
Code :
Oui mes documents XML sont dans le même dossier (j'en ai 250). |
||
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Laurent R.Conseil - Consultant en systèmes d'information Inscription : mai 2012 Messages : 588 ![]() |
Ton descripteur de fichier s'appelle $FIC (avec le signe '$'):
Code :
open my $FIC, "<", $file or die "ouverture impossible de $file $! \n"; Change cette ligne: Il y a peut-être d'autres erreurs, mais celle-là était clairement bloquante,car tu ne lis même pas le fichier.
__________________
Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés. |
|
|
00
|
|
|
#6 | |
|
Invité régulier
![]() PierJean Étudiant Inscription : mai 2010 Messages : 26 ![]() |
Effectivement ... j'avais pas vu. Maintenant j'ai le droit à cette erreur :
Citation:
|
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Laurent R.Conseil - Consultant en systèmes d'information Inscription : mai 2012 Messages : 588 ![]() |
$FIC est déclaré dans le foreach. Tu le fermes trop tard, quand tu es sorti de la boucle foreach. Le "clsoe $FIC" n'est plus dans la portée lexicale de ta déclaration.
Il faut le fermer entre la fin de la boucle while et la fin de la boucle foreach, c'est-à-dire ligne 20 dans ton code ci-dessus. Ce qui est logique, en principe tu veux fermer $FIC avant d'en ouvrir un autre.
__________________
Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés. |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() PierJean Étudiant Inscription : mai 2010 Messages : 26 ![]() |
Merci beaucoup pour ton aide.
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com