Вы можете использовать XML :: TreeBuilder, что-то вроде этого:
use XML::TreeBuilder;
my $root= XML::TreeBuilder->new();
$root->parse($xml);
my @history=$root->look_down(_tag=>'PubMedPubDate');
foreach my $h (@history) {
printf "%s: %d-%d-%d %d:%d\n", $h->attr('PubStatus'),
$h->look_down(_tag => Year)->as_text,
$h->look_down(_tag => Month)->as_text,
$h->look_down(_tag => Day)->as_text,
$h->look_down(_tag => Hour)->as_text,
$h->look_down(_tag => Minute)->as_text;
}
в результате вы получите следующее:
entrez: 2010-6-18 6:0
pubmed: 2010-7-19 6:10
medline: 2010-8-20 7:0
entrez: 2011-4-18 10:20
pubmed: 2011-7-24 8:10
medline: 2011-3-4 5:37
note : вам нужно1 корневой тег в документе, поэтому просто оберните его <xml></xml>
, например