Я полный noob во всем этом, но когда-то я написал небольшой скрипт в Perl для анализа RSS-канала. Она начинается так:Почему XML-файл Perl XML :: RSS :: Parser жалуется на «несоответствие тегов»?
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">
Я не знаю, было ли это раньше. Я попробовал несколько других кормов для атома, и парсер, похоже, сломал их. Проблема заключается в том, что sysadmin не возвращается до истечения срока, поэтому я должен использовать то, что доступно.
ОБНОВЛЕНИЕ:
интересный. он ломается как на моем w7 64 * активном perl), так и на ubuntu (32, 9.10). отлично работает на ubuntu моего друга (то же самое, 9.10). Я попытался переустановить модули, но это ничего не меняет.
Мы все видим одни и те же данные? Для меня, строка 67 данных подачи является:
v5.10.0 4 2.11 0.96 также здесь, но я получаю сообщение об ошибке. Это, безусловно, справедливо. – Anonymous