Wyzwanie
Napisz program, który, wykorzystując dane XML z witryny tutaj , wyświetli nazwę programu, który jest obecnie pokazano na BBC 1.
Informacja
Wszystkie godziny podane są w czasie londyńskim (GMT + 1 w momencie nadania i GMT + 0 po 30 października). Dlatego należy przeliczyć czas lokalny na czas londyński.
Każdy program ma czas rozpoczęcia i zakończenia. Jeśli bieżący czas jest późniejszy niż czas rozpoczęcia i czas zakończenia programu, ten program jest obecnie wyświetlany. Twój program może obsługiwać nakładanie się w dowolny sposób.
Twój wynik musi być tytułem programu, podobnie jak:
BBC News
Jeśli jednak program ma napisy (pokazane przez obecność znacznika napisów), wynik powinien wyglądać następująco:
Steptoe and Son: The Piano
Gdzie Steptoe and Son to tytuł, a The Piano to podtytuł. Przykładowy program z napisami jest następujący:
<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>
Skracacze URL są niedozwolone, ale biblioteki parsowania XML są dozwolone.
Zwycięski
Najkrótszy kod w bajtach wygrywa.
Odpowiedzi:
Bash + curl + XMLStarlet, 166 znaków
Przykładowy przebieg:
źródło
Python,
440428426398395 bajtów-31 Bajtów dzięki @Loovjo
Zgłasza błąd, gdy znalazł datę.
Nie rób mi krzywdy za parsowanie xml z regex.
wersja korzystająca z parsera XML, 398 bajtów
źródło
break
coś, co powoduje błąd (np.1/0
(A może nawet_
)). Jestem prawie pewien, że Twoje zgłoszenia mogą zakończyć się z błędem.urllib
, aby wykorzystaćrequests
w swoim pierwszym przykładzie:x=requests.get(link).text.split("</p")[:-1]
. To pozwoli Ci zaoszczędzić 2 bajty.