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 )