Bonjour à tous,
Mon but est de récupérer des informations entre des balises via a un parser...(Mon parser fonctionne, aucun problème à ce niveau là).
Cependant j'ai remarqué que beaucoup de textes se situaient entre les balises <td>...</td>. Malheureusement ces informations nappartiennet pas toutes au meme sujet, je voudrais faire le tri !!!
Exemple (Ce n'est qu'une partie de mon programme, le reste fonctionne...)
Mon problème est de ne pas savoir jongler avec les différentes balises "td" et les boucles "if" dans ma start_rtn, pour récupérer des informations pour chaque type de sujet...Merci pour vos commentaires
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 sub start_rtn { my ($tag, $attr) = @_; if ($tag =~ /^td$/){ $flag = 6; } if ($tag =~ /^b$/){ $flag = 7; } if ($tag =~ /^td$/){ $flag = 8; } if ($tag =~ /^td$/){ $flag = 10; } } sub text_rtn { my ($text) = @_; $text =~ s/\n/ /g; if($flag == 6 && (($text eq 'Intron') || ($text eq 'Exon') || ($text eq 'NA') || ($text =~ /^[0-9]' UTR*$/))){ print "Feature : $text\n" ; } if($flag == 7 && ($text =~ /^[A-Z]{1}[a-z]{2}\/[A-Z]{1}[a-z]{2}$/ || $text =~ /^[A-Z]{1}[a-z]{2}$/)){ print "Amino Acid Translation : $text\n"; } if($flag == 8 && ($text =~ /^[A-Z]{1}[a-z]{2}\/[A-Z]{1}[a-z]{2}$/ || $text =~ /^[A-Z]{1}[a-z]{2}$/)){ print "Amino Acid Translation : $text\n"; } if($flag == 10 && ($text =~ /^[0-9]/ && $text ne '3\' UTR' && $text ne '5\' UTR')){ print "Number of Chromosomes : $text\n"; } } sub end_rtn { my ($tag) = @_; if ($tag =~ /^\/td$/ && ($flag == 6 || $flag == 8 || $flag == 10|| $flag == 11)){ $flag = 0; }
Si vous avez besoin d'autres précisions, et si vous voulez mon code tout entier aussi!!!
Partager