Herausforderung
Schreiben Sie ein Programm, das unter Verwendung der XML-Daten von der Site hier den Namen des Programms anzeigt, das derzeit auf BBC 1 angezeigt wird.
Information
Alle Zeiten sind zur Londoner Zeit angegeben (GMT + 1 zum Zeitpunkt der Veröffentlichung und GMT + 0 nach dem 30. Oktober). Daher sollten Sie Ihre Ortszeit in Londoner Zeit umrechnen.
Jedes Programm erhält eine Start- und Endzeit. Wenn die aktuelle Zeit nach der Startzeit und vor der Endzeit eines Programms liegt, wird dieses Programm derzeit angezeigt. Ihr Programm kann Überlappungen nach Belieben verarbeiten.
Ihre Ausgabe muss der Programmtitel sein, wie folgt:
BBC News
Wenn das Programm jedoch einen Untertitel hat (angezeigt durch das Vorhandensein des Untertitel-Tags), sollte die Ausgabe folgendermaßen aussehen:
Steptoe and Son: The Piano
Wo Steptoe and Son der Titel und The Piano der Untertitel ist. Ein Beispielprogramm mit einem Untertitel lautet wie folgt:
<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-Shortener sind nicht zulässig, XML-Parsing-Bibliotheken sind jedoch zulässig.
Gewinnen
Der kürzeste Code in Bytes gewinnt.
Antworten:
Bash + Curl + XMLStarlet, 166 Zeichen
Probelauf:
quelle
Python,
440428426398395 Bytes-31 Bytes dank @Loovjo
Wirft einen Fehler, wenn das Datum gefunden wurde.
Bitte verletze mich nicht, wenn ich XML mit Regex analysiere.
Version mit einem XML-Parser, 398 Bytes
quelle
break
durch etwas ersetzen , das einen Fehler verursacht (wie1/0
(oder vielleicht sogar_
)). Ich bin mir ziemlich sicher, dass Ihre Einsendungen mit einem Fehler beendet werden können.urllib
Verwendungrequests
in Ihrem ersten Beispiel :x=requests.get(link).text.split("</p")[:-1]
. Das spart Ihnen 2 Bytes.