Я полный нуб во всем этом, но некоторое время назад я написал небольшой скрипт на Perl для разбора RSS-канала. Это начинается так:
use strict;
use XML::RSS::Parser;
use Data::Dumper;
my $url = "http://www.livenation.co.uk/Venue/159/Southampton-Guildhall-tickets/RSS";
my $parser = XML::RSS::Parser->new();
my $feed = $parser->parse_uri($url);
print Dumper( $feed );
print $parser->errstr();
Раньше он работал (не помню, когда я последний раз проверял его, но несколько недель назад он, казалось, работал), но сегодня он больше не работает. Канал RSS активен и проходит через feedvalidator.org. errstr()
возвращает это:
End tag mismatch (title != description) [Ln: 67, Col: 95]
Я не совсем уверен, как это произошло или что это значит. Источник RSS гласит:
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
Я не знаю, было ли это иначе. Я попробовал несколько других каналов атома, и парсер, кажется, ломает их всех. Проблема в том, что сисадмин не вернулся до истечения срока, поэтому я должен использовать то, что доступно.
UPDATE:
интересно. он ломается как на моем w7 64 * active perl), так и на ubuntu (32, 9.10). работает хорошо на Ubuntu моего друга, хотя (то же самое, 9.10). Я попытался переустановить модули, но это ничего не меняет.