Défi
Écrivez un programme qui, en utilisant les données XML du site ici , affiche le nom du programme actuellement affiché sur BBC 1.
Information
Toutes les heures sont données à l'heure de Londres (GMT + 1 au moment de l'affichage et GMT + 0 après le 30 octobre). Par conséquent, vous devez convertir votre heure locale en heure de Londres.
Chaque programme reçoit une heure de début et de fin. Si l'heure actuelle se situe après l'heure de début et avant l'heure de fin d'un programme, ce programme est actuellement affiché. Votre programme peut gérer les chevauchements comme vous le souhaitez.
Votre sortie doit être le titre du programme, comme ceci:
BBC News
Cependant, si le programme a un sous-titre (indiqué par la présence de la balise de sous-titre), la sortie devrait être la suivante:
Steptoe and Son: The Piano
Où Steptoe and Son est le titre et The Piano est le sous-titre. Un exemple de programme avec un sous-titre est le suivant:
<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>
Les raccourcisseurs d'URL sont interdits mais les bibliothèques d'analyse XML sont autorisées.
Gagnant
Le code le plus court en octets gagne.
Réponses:
Bash + curl + XMLStarlet, 166 caractères
Exemple d'exécution:
la source
Python,
440428426398395 octets-31 octets grâce à @Loovjo
Lance une erreur lorsqu'il a trouvé la date.
Veuillez ne pas me blesser pour avoir analysé xml avec regex.
version utilisant un analyseur xml, 398 octets
la source
break
par quelque chose qui provoque une erreur (comme1/0
(ou peut-être même_
)). Je suis sûr que vos soumissions peuvent se terminer avec une erreur.urllib
d'utiliserrequests
dans votre premier exemple:x=requests.get(link).text.split("</p")[:-1]
. Cela vous fera économiser 2 octets.