Revenir
Revenir

Manipuler le format XML

Prérequis : maîtriser les bases de la programmation Python (variables, boucles, entrées/sorties)

Sommaire

Avant de commencerPrésentationFichier XML d'exempleArbre des balises du fichier XML d'exemple - Schémafilms.xml - Fichier XML
ExercicePréparationTraitement des données avec PythonVers le notebook Capytale - Site

Avant de commencer

Prérequis : maîtriser les bases de la programmation Python (variables, boucles, entrées/sorties)
Contexte de la mise en œuvre de l'activité : en classe, en présence de l'enseignant
Ressources, matériel, documents nécessaires :
  • Bibliothèques Python : xml
  • Un dossier contenant le fichier "films.xml" et le programme à réaliser 

Présentation

Alice souhaite obtenir le résumé du filmAlienainsi qu'une liste des acteurs. Pour cela, elle récupère sur internet un fichier XML regroupant une grande quantité de films.
Dans ce TP, nous allons extraire certaines données issues d'un fichier XML se rapportant au cinéma.
Le langage XML (eXtended Markup Language) est un format général de documents orienté texte. Il s'est imposé comme un standard incontournable de l'informatique. Il est aussi bien utilisé pour le stockage de documents que pour la transmission de données entre applications. Sa simplicité, sa flexibilité et ses possibilités d'extension ont permis de l'adapter à de multiples domaines allant des données géographiques au dessin vectoriel en passant par les échanges commerciaux. De nombreuses technologies se sont développées autour de XML et enrichissent ainsi son environnement.
Un document XML avec une syntaxe correcte est dit bien formé :
  • le document XML doit avoir un seul élément racine ;
  • les éléments (balises) XML doivent avoir une balise fermante ;
  • les balises XML sont sensibles à la casse (case-sensitive) ;
  • les valeurs des attributs doivent toujours être entre guillemets ;
  • les balises XML ne doivent pas se chevaucher.

Fichier XML d'exemple

Arbre des balises du fichier XML d'exemple - Schéma

films.xml - Fichier XML


Exercice

Préparation

On utilise la bibliothèquexmlpour le traitement des données.
La méthodeparsepermet de convertir le fichier en arbre.
arbre.getroot()permet d'obtenir la racine de l'arbre (la première balise).
racine.findall("./FILMS/FILM/TITRE") permet d'obtenir la liste de tous les éléments de la balise, enfant de la balise elle-même enfant de la balise . On pourra récupérer le texte entre les balises  et  avec l'attributtextde l'élément : 
ltitre = racine.findall("./FILMS/FILM/TITRE")
print("le premier film est", ltitre[0].text)
Une liste permet de stocker des éléments que l'on peut rappeler à l'aide de leurs indices :
liste = ['a', 'b', 'c']
liste[0] renvoie a    liste[1] renvoie b
Le nombre d'éléments d'une liste est obtenu parlen(nom de la liste)
len(liste)renvoie 3

Traitement des données avec Python

Nous allons travailler à partir du fichier "films.xml" qui comporte des informations sur quelques films et artistes. Notre démarche, limitée à une petite quantité de données, pourrait être utilisée sur des banques d'informations beaucoup plus conséquentes.  
1. Observez le modèle xml du fichier et lancez le programme suivant :
import xml.etree.ElementTree as ET
arbre = ET.parse("films.xml")
racine = arbre.getroot()
print("la balise racine est", racine.tag)
print(racine[0][0].attrib)
print(f"il y a {len(racine.findall('./FILMS/FILM/TITRE'))} films dans le fichier")
2. Affichez le nombre de films ainsi que la liste de tous les films du fichier.
3. Affichez le résumé du filmAlien.
4. Affichez les prénoms et noms de tous les artistes du fichier.

Vers le notebook Capytale - Site