Manipuler des données XML sans recourir à un excès d'architecture

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
53
Mois de parution
mars 2011
Domaines


Résumé
Le but de cet article est de présenter les particularités spécifiques avec lesquelles Python aborde le XML et de voir comment transformer ces données en n'utilisant, comme pour CSV, LDAP, SQL, que les deux types de base (liste et dictionnaire) de manière à pouvoir les utiliser en combinaison avec des données en provenance de LDAP, d'une base de données relationnelle ou d'un fichier CSV, vus dans de précédents articles.Cet article fait suite au précédent qui abordait le format XML, les schémas et la validation. Le principal exercice de l'article est de sélectionner une partie des données du fichier XML présenté dans le précédent article pour les écrire sous forme de liste de dictionnaires.

1. Outils permettant d'appréhender le XML avec SAX

1.1 Présentation de SAX

Il s'agit d'une interface de programmation (Simple API for XML) initialement faite pour le langage JAVA, mais étendue à d'autres langages. SAX a une manière très spécifique d'appréhender un document XML : il traite les éléments l'un après l'autre, au fur et à mesure qu'ils sont rencontrés, et appelle pour chacun une fonction de rappel correspondante.

Cette méthode a pour avantage considérable de n'utiliser que peu de mémoire vive, puisque seul l'élément courant traité est stocké. Le développeur peut cependant choisir de conserver en mémoire les éléments qui l'intéressent.

1.2 API SAX allégée

Voici un exemple court reposant sur le fichier XML présentant les départements, ci-dessus. L'exercice récurrent de cet article sera de convertir certaines des données en une liste de dictionnaires, de manière à ce que ces données puissent par la suite être écrites dans un fichier CSV.

En...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

À la découverte des namespaces mount et uts

Magazine
Marque
GNU/Linux Magazine
Numéro
247
Mois de parution
avril 2021
Domaines
Résumé

Le namespace mount, premier d'une longue série de namespaces a été ajouté à Linux quelques années après chroot() pour offrir plus de possibilités et de sécurité dans l'isolation des systèmes de fichiers. Introduit peu après et indéniablement plus simple, le namespace uts permet d'instancier les noms de machine. Les conteneurs sont bien entendu les premiers clients de ces fonctionnalités.

Godot : comment créer un jeu d’aventure

Magazine
Marque
GNU/Linux Magazine
Numéro
247
Mois de parution
avril 2021
Domaines
Résumé

Dans cette série dont cet article est le premier, nous allons découvrir comment créer un jeu aussi complexe qu’un jeu d’aventure avec le moteur de jeu Godot. Nous verrons les différentes étapes, les obstacles et les différents outils mis à votre disposition.

C’est l’histoire d’un make…

Magazine
Marque
GNU/Linux Magazine
Numéro
247
Mois de parution
avril 2021
Domaines
Résumé

L’outil make permet de fabriquer des fichiers selon des règles de production décrites dans une syntaxe très simple. Dans cet article, nous allons explorer les grands principes de l’écriture de ces règles et pour ceux qui ne sont pas encore familiers de cet outil, vous faire regretter d’avoir attendu si longtemps pour le connaître…

Un alter ego d’Eliza en Java faisant du calcul symbolique

Magazine
Marque
GNU/Linux Magazine
Numéro
247
Mois de parution
avril 2021
Domaines
Résumé

ELIZA a été l’un des premiers programmes (chatbot) à avoir tenté de communiquer en langage naturel. Cet article est une tentative de démystification du comportement du programme. L’interprétation d’ELIZA présentée ici est une implémentation en français qui intègre la possibilité d’effectuer des calculs de dérivées en calcul symbolique.