Bonjour,
débutant en perl (niveau zéro de chez zéro même), et devant effectuer de toute urgence
une correction sur un exe en perl, je me tourne vers vous tous.
J'explique : je dois récupérer des infos d'un fichier xml (balises ou attributs).
Pour cela j'ai développé un petit log de test qui marche à merveille.
Le problème c'est pour incorporer mon code à celui déjà existant, car il faut que je le mette dans une fonction, qui retourne au final une hashtable...
Dans cette hashtable, on aura :
[code balise n°1] contenu balise n°1; contenu attribut n°1
[code balise n°2] contenu balise n°2; contenu attribut n°2
etc...
j'utilise xml::twig car cela me permet de trouver les balises qui peuvent être à des niveaux différents d'un fichier à l'autre, mais dans l'absolu, l'information est toujours présente dans les fichiers.
Donc, quand j'incorpore mon bout de code (qui ne faisait qu'afficher à l'écran les infos), dans le programme à débogger, je n'arrive pas à faire suivre les données.
Voici le code:
ps : mon code qui marche début aux Handlers....
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 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; }
et ce que je souhaite faire suivre est %hashTitleFic
j'espère avoir été assez claire dans mon explication.
Pouvez-vous m'aider?
D'avance merci pour vos réponses et votre aide.
Cordialement,
Pirotes31.
Partager