I have drunk the XML Kool-aid, also the Perl References Kool-aid.
#!perl -wl
use XML::Parser;
use LWP::Simple;
$content=get("http://earthquake.usgs.gov/recenteqsww/catalogs/eqs1day-M2.5.xml");
my $xml=new XML::Parser(Style => 'Tree');
$f=$xml->parse($content);
exit unless $$f[0] eq 'rss';
@g=&findelement('channel',@$f[1]);
@items=&findelement('item',$g[0]);
for (@items) {
@s=&findelement('dc:subject',$_);
die unless @s==2;
$mag=&intext($s[0]);
$post=&intext($s[1]);
$title=&gettext('title',$_);
$link=&gettext('link',$_);
$date=&gettext('description',$_);
print "$title\n$date\n$link\n$mag $post\n";
}sub findelement {
my ($tag,$val); my @ret; my ($target,$arr)=@_;
@_=@$arr;
shift; #throw away attribute hash
while (@_) {
$tag=shift; $val=shift;
push @ret,$val if ($tag eq $target);
}
@ret;
}
sub gettext {
my ($target,$arr)=@_;
my @t0=&findelement($target,$arr);
&intext(@t0);
}
sub intext {
my @t1=&findelement('0',$_[0]);
$t1[0];
}
No comments :
Post a Comment