Pour commencer, choisis-toi un parseur XML (un parseur DOM sera pratique pour modifier la structure par la suite, XML::DOM par exemple).
Ensuite, parcours lis ton fichier de theme et stocke les informations dans un hash, comme ceci par exemple :
1 2
| open my $THEME, "<", "themes.txt" or die "Can't ope, themes.txt for reading: $!";
my %theme = map { chomp; $_ => 1 } <$THEME>; |
Ensuite, à l'aide du parseur, parcours tous les tags <resumelivre> et pour chacun, applique une modification à l'aide, par exemple, d'une expression régulière de ce type :
1 2
| my @mots_theme = ();
$resume =~ s{\b(\w+)\b}{exists $theme{$1} ? (push @mots_theme, $1, "<theme>$1</theme>") : $1}ge; |
Puis après chaque tag <resumelivre>, tu y ajoutes un frère <mots-theme> dont le contenu sera constitué ainsi :
my $mots_theme = join ",", @mots_theme;
Voila, il ne te reste plus qu'à mettre un peu de glue entre tout ça, et peut-être te poser les bonnes questions sur la portée de @mots_theme.
Cordialement.
Partager