В настоящее время я предпочитаю избегать специфичных для домена парсеров XML и просто использовать XPath для всего.Таким образом, я должен помнить только один API.(Если это не огромный XML, тогда я буду использовать анализатор на основе событий, такой как XML :: Parser .)
Поэтому, используя XML :: XPath , яможет взять кучу вещей из файла RSS, например:
my $rss = get_rss();
my $xp = XML::XPath->new( xml => $rss );
my $stories = $xp->find( '/rss/channel/item' );
foreach my $story( $stories->get_nodelist ) {
my $url = $xp->find( 'link', $story )->string_value;
my $title = $xp->find( 'title', $story )->string_value;
...
}
Не самый красивый код в мире, но он работает.