Traitement XML

3 h Niveau 9

Le XML est un langage portable et libre qui permet aux programmeurs de développer des applications pouvant être lues par d'autres applications, indépendamment du système d'exploitation et/ou de la langue de développement.

Qu'est-ce que le XML ?

Le langage de balisage extensible (XML) est un langage de balisage semblable au HTML ou au SGML. Il est recommandé par le World Wide Web Consortium et disponible en tant que norme ouverte.

Le XML est extrêmement utile pour assurer le suivi de petites et moyennes quantités de données sans avoir besoin d'une base de données SQL.

Architectures et API de l'analyseur XML

La bibliothèque standard de Python fournit un ensemble minimal mais utile d'interfaces pour travailler avec XML.

Les deux API les plus basiques et les plus largement utilisées pour les données XML sont les interfaces SAX et DOM.

  • Simple API for XML (SAX) − Ici, vous enregistrez des rappels pour les événements intéressants, puis vous laissez l'analyseur syntaxique parcourir le document. C'est utile lorsque vos documents sont volumineux ou que vous avez des limitations de mémoire, il analyse le fichier au fur et à mesure qu'il le lit sur le disque et le fichier entier n'est jamais stocké en mémoire.
  • Document Object Model (DOM) API − Il s'agit d'une recommandation du World Wide Web Consortium dans laquelle le fichier entier est lu dans la mémoire et stocké sous une forme hiérarchique (arborescente) pour représenter toutes les caractéristiques d'un document XML.

SAX ne peut évidemment pas traiter l'information aussi rapidement que DOM, lorsqu'on travaille avec de gros fichiers. D'autre part, l'utilisation exclusive de DOM peut vraiment tuer vos ressources, surtout si elle est utilisée sur de nombreux petits fichiers.

SAX est en lecture seule, alors que DOM permet de modifier le fichier XML. Étant donné que ces deux API différentes se complètent littéralement, il n'y a aucune raison pour que vous ne puissiez pas les utiliser toutes les deux pour de grands projets.

Pour tous nos exemples de code XML, utilisons un simple fichier XML movies.xml comme entrée :

<collection shelf = "New Arrivals">
<movie title = "Enemy Behind">
    <type>War, Thriller</type>
    <format>DVD</format>
    <year>2003</year>
    <rating>PG</rating>
    <stars>10</stars>
    <description>Talk about a US-Japan war</description>
</movie>
<movie title = "Transformers">
    <type>Anime, Science Fiction</type>
    <format>DVD</format>
    <year>1989</year>
    <rating>R</rating>
    <stars>8</stars>
    <description>A schientific fiction</description>
</movie>
    <movie title = "Trigun">
    <type>Anime, Action</type>
    <format>DVD</format>
    <episodes>4</episodes>
    <rating>PG</rating>
    <stars>10</stars>
    <description>Vash the Stampede!</description>
</movie>
<movie title = "Ishtar">
    <type>Comedy</type>
    <format>VHS</format>
    <rating>PG</rating>
    <stars>2</stars>
    <description>Viewable boredom</description>
</movie>
</collection>

Analyser le XML avec les API SAX

logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus