Information

Author(s) Quentin Cappart
Deadline Καμία προθεσμία
Submission limit No limitation

Συνδεθείτε

Manipulation de fichiers XML

Oh non (bis)! C'est maintenant les factures personnelles du professeur qui ont maintenant fuité. :-( Elles sont disponibles ici. Vous remarquez que les factures sont en format XML, avec les éléments suivants pour chaque facture:

  • un numéro de facture ;
  • un statut : payee, en_attente ou en_retard ;
  • une date ;
  • une date d’échéance ;
  • un vendeur ;
  • un client ;
  • plusieurs lignes de facture ;
  • un taux de TVA.

Regardez également par vous même le fichier pour d'autres éventuelles informations (p.ex., la devise utilisée). Il vous est demandé d'implémenter des fonctions en python pour obtenir les informations demandées. Pour cela, vous ne pouvez utiliser que la librairie xml.etree.ElementTree. Comme toujours, travaillez d'abord en local sur votre ordinateur. Référez vous à la documentation officielle pour comprendre le fonctionnement de la librairie (https://docs.python.org/3/library/xml.etree.elementtree.html).

Vous pouvez supposer que la librairie import xml.etree.ElementTree as ET est bien importée de notre côté quand vous soumettez une réponse. Finalement, le code a fournir est généralement assez court (parfois une seule ligne) avec une bonne manipulation des fonctions disponibles.


Question 1: Lecture d'un fichier

Complétez la fonction suivante.

Question 2: Extraction d'informations

Complétez la fonction suivante.

Question 3: Manipulation simple

Complétez la fonction suivante.

Question 4: Manipulation simple

Complétez la fonction suivante.

Question 5: Manipulation plus avancée

Complétez la fonction suivante.

Question 6: Ecriture de fichier

Complétez la fonction suivante. Le résultat doit avoir la forme suivante.

<resume>
    <facture numero="FAC-2026-0001" statut="en_retard">
        <client>Université de Namur</client>
        <total_ht>3457.5</total_ht>
        <total_ttc>4183.57</total_ttc>
    </facture>
    <facture numero="FAC-2026-0002" statut="en_attente">
        <client>DataSchool ASBL</client>
        <total_ht>1987.5</total_ht>
        <total_ttc>2404.88</total_ttc>
    </facture>
    ...
</resume>

System Message: WARNING/2 (<string>, line 18)

Explicit markup ends without a blank line; unexpected unindent.

note : la version python inginious etant trop ancienne, ET.indent(arbre, space, level) n'est pas disponible. Pour votre soumission remplacez par indent(root,level).