XML-Parser-YahooRESTGeocode
view release on metacpan or search on metacpan
YahooRESTGeocode.pm view on Meta::CPAN
while ($expat->{'Curlist'}->[$#{$expat->{'Curlist'}}]->{'_name'} ne $name){
push (@data, pop(@{$expat->{'Curlist'}}));
};
#one more to catch the start tag
push (@data, pop(@{$expat->{'Curlist'}}));
reverse (@data);
return (\@data);
}
## extract_pcdata #################################
sub extract_pcdata {
my $data = shift();
my %out = ();
foreach (@{$data}){
foreach my $f (@_){
if (($_->{'_name'} eq $f) && ($_->{'_data'} !~/^$/)){
$out{$f} = $_->{'_data'};
}
}
}
return (\%out);
}
## End ############################################
sub End {
my ($expat, $element) = @_;
if (exists($node_tree{$element})){
my $data = extract_pcdata(gather_data($expat, $element), @{$node_tree{$element}});
push (@{$expat->{'Lists'}->{'DATA'}->{$element}}, $data);
#if the user defined some callback to execute, do that
if (exists($expat->{'_YahooREST_callbacks'}->{$element})){
&{$expat->{'_YahooREST_callbacks'}->{$element}}($data);
}
}
}
( run in 0.485 second using v1.01-cache-2.11-cpan-454fe037f31 )