Вызов
Напишите программу , которая, используя данные XML с сайта здесь , отображать имя программы , которая в настоящее время показывает на BBC 1.
Информация
Время указывается по лондонскому времени (GMT + 1 на момент публикации и GMT + 0 после 30 октября). Поэтому вам следует перевести ваше местное время в лондонское.
Каждой программе дается время начала и окончания. Если текущее время указано после времени начала и до времени окончания программы, эта программа отображается в данный момент. Ваша программа может обрабатывать перекрытия в любом случае.
Ваш вывод должен быть названием программы, вот так:
BBC News
Однако, если программа имеет субтитры (показанные наличием тега субтитров), вывод должен выглядеть примерно так:
Steptoe and Son: The Piano
Где Степто и Сын - это название, а Фортепиано - это субтитры. Пример программы с субтитрами выглядит следующим образом:
<programme>
<subtitle>Newcastle</subtitle>
<title>Flog It!</title>
<end>1710</end>
<start>1610</start>
<desc>
Antiques series. Paul Martin presents from the Discovery Museum in Newcastle. The items uncovered include a book of autographs with a local connection. Also in HD. [S]
</desc>
</programme>
Сокращения URL-адресов запрещены, но библиотеки синтаксического анализа XML разрешены.
выигрыш
Самый короткий код в байтах побеждает.
Ответы:
Bash + curl + XMLStarlet, 166 символов
Образец прогона:
источник
Python,
440428426398395 байт-31 байт благодаря @Loovjo
Выдает ошибку, когда находит дату.
Пожалуйста, не делайте мне больно за синтаксический анализ XML с помощью регулярных выражений.
версия с использованием парсера xml, 398 байт
источник
break
то, что вызывает ошибку (например,1/0
(или, может быть, даже_
)). Я уверен, что ваши материалы могут завершиться с ошибкой.urllib
использоватьrequests
в первом примере:x=requests.get(link).text.split("</p")[:-1]
. Это сэкономит вам 2 байта.