ma question est: comment passer certains arguments à XML: le gestionnaire de Twig, et comment retourner le résultat du gestionnaire.Comment puis-je passer des arguments et renvoyer des valeurs avec le gestionnaire de XML :: Twig?
Voici mon code, qui hardcoded:
<counter name = "music", report type = "month", stringSet index = 4>
. Comment implémenter cela en utilisant des arguments $counter_name
, $type
, $id
? et comment retourner le résultat de string_list? Merci (désolé je n'ai pas posté le fichier xml ici parce que j'ai un peu de mal à le faire, quoi que ce soit au sein de < et> sont ignorés).
use XML::Twig;
sub parse_a_counter {
my ($twig, $counter) = @_;
my @report = $counter->children('report[@type="month"]');
for my $report (@report){
my @stringSet = $report->children('stringSet[@index=”4”]');
for my $stringSet (@stringSet){
my @string_list = $stringSet->children_text('string');
print @string_list; # in fact I want to return this string_list,
# not just print it.
}
}
$counter->flush; # free the memory of $counter
}
my $roots = { 'counter[@name="music"]' => 1 };
my $handlers = { counter => \&parse_a_counter };
my $twig = new XML::Twig(TwigRoots => $roots,
TwigHandlers => $handlers);
$twig->parsefile('counter_test.xml');
@ lilili07: Bienvenue à SO. J'ai formaté votre code, vous pouvez inclure le XML en l'entourant de backticks. N'hésitez pas à le modifier si j'ai fait une erreur. – Zaid