Thread Tree::Simple Bug?
(9 answers)
Opened by pktm at 2008-09-07 01:27
Die Suchfunktion oben hat eine Unzulänglichkeit:
Sie findet immer nur den ersten "Node" zu einem Wert. Das Macht sie schnell, aber es kann mehrere geben Nodes geben, die den Wert haben. Darum eine kleine Änderung: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sub find { my $tree = shift; my $node_value=shift; my @childs=(); my $func; $func = sub ($) { my $child=shift(); push(@childs,$child) if($child->getNodeValue() eq $node_value); my @children=$child->getAllChildren(); $func->(shift(@children)) while(@children); }; $func->($tree); return @childs; } Aufruf: Code (perl): (dl
)
my @nodes=find($tree,"<NodeValue>"); |