Python lire un fichier xml

En python, manipuler des fichiers xml est très simple, voici comment lire un fichier simplement.Nous avons vu dans un précédent article comment créer un fichier xml en python (article création de fichier xml en python), il est donc très simple d’en créer un alors la simple lecture est encore plus facile.

Vous pouvez trouver aussi un article sur la modification d’un fichier xml en python.

Nous allons récupérer le fichier généré dans l’article sur la création d’un fichier xml pour faire notre test. Si vous ne l’avez pas suivi, je vous invite à le faire, ce sera rapide.

Pour rappel, le fichier annuaire.xml contient :

<?xml version="1.0" encoding="UTF_8"?>
<annuaire>
  <personne id="0">
    <nom>Durant</nom>
    <prenom>Pierre</prenom>
    <telephone type="mobile">118.218</telephone>
  </personne>
  <personne id="1">
    <nom>Martin</nom>
    <prenom>Ingride</prenom>
    <telephone type="fixe">18</telephone>
  </personne>
</annuaire>

Lecture d’un fichier xml en python

Nous allons créer un fichier lecture_xml.py dans la lequel nous allons écrire (j’explique chaque partie dans les commentaires) :

#Encodage du fichier en UTF-8
# coding: utf-8

#Import du module nécessaire
from lxml import etree

#Lecture du fichier et mise en placa dans une variable
annuaire = etree.parse('annuaire.xml')

#On se place dans chaque lieu de l'arborescence contenant la balise personne
for noeuds in annuaire.xpath('//annuaire/personne'):
        #On récupère l'id
        id = noeuds.get('id')
        for nom in noeuds.xpath('nom'):
                #Je récupère le nom
                nom_recup = nom.text
        for prenom in noeuds.xpath('prenom'):
                #On récupère le prénom
                prenom_recup = prenom.text
        #J'affiche les résultats
        print('Id : {}, Nom : {}, prénom : {}'.format(id,nom_recup,prenom_recup))

EN exécutant le script vous devriez obtenir :

Id : 0, Nom : Durant, prénom : Pierre
Id : 1, Nom : Martin, prénom : Ingride

Voilà qui est relativement simple, on a vu comment récupérer la valeur d’un attribut ainsi que le texte contenu dans la balise.

N’hésitez pas à partager et à commentez.

Laisser un commentaire