Bonjour,

je suis débutant et je suis entrain de suivre le cours de programmation python, mais en même temps j'essaie de developper un programme qui permet
de créer x fichiers XML à partrir :

1- d'un model de fichier XML (pour la structure)
2- d'un fichier Excel pour les données

le contenu de mon fichier excel est le suivant ( à titre d'exemple)


Id_GROUPE NOM Sexe
1 NOM1 F
1 NOM2 1
1 NOM3 1
1 NOM4 1
2 NOM1 M
2 NOM2 2
3 NOM1 M
3 NOM2 2
3 NOM3 2

pour cette exemple je souhaite :

1- avoir 3 fichiers xml : Id_GROUPE_1.xml (pour le groupe de données 1) , Id_GROUPE_2.xml (pour le groupe de données 2) Id_GROUPE_3.xml (pour le groupe de données 2)


le contenu du fichier modèl XML est le suivant


Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<SOURCE DESCRIPTION ="" NAME ="GROUPEx" OBJECTVERSION ="1" OWNERNAME ="ADMIN" VERSIONNUMBER ="1">
 
       <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="Id_GROUPE"  VALUE ="x"/>
 
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="NOM"  VALUE ="NOMx"/>
 
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="SEX" VALUE ="SEXx"/>
 
</SOURCE>

le résultat souhaité pour le premier fichier xml (Id_GROUPE_1.xml):

Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<SOURCE DESCRIPTION ="" NAME ="GROUPE1" OBJECTVERSION ="1" OWNERNAME ="ADMIN" VERSIONNUMBER ="1">
       <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="Id_GROUPE"  VALUE ="1"/>
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="NOM"  VALUE ="NOM1"/>
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="SEX" VALUE ="F"/>
       <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="Id_GROUPE"  VALUE ="1"/>
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="NOM"  VALUE ="NOM2"/>
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="SEX" VALUE ="M"/>
<SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="Id_GROUPE"  VALUE ="1"/>
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="NOM"  VALUE ="NOM3"/>
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="SEX" VALUE ="M"/>
<SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="Id_GROUPE"  VALUE ="1"/>
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="NOM"  VALUE ="NOM4"/>
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="SEX" VALUE ="M"/>
</SOURCE>


le résultat souhaité pour le premier fichier xml (Id_GROUPE_2.xml):
pour le premier groupe de données (id_groupe =1)
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<SOURCE DESCRIPTION ="" NAME ="GROUPE2" OBJECTVERSION ="1" OWNERNAME ="ADMIN" VERSIONNUMBER ="1">
       <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="Id_GROUPE"  VALUE ="2"/>
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="NOM"  VALUE ="NOM3"/>
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="SEX" VALUE ="M"/>
       <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="Id_GROUPE"  VALUE ="2"/>
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="NOM"  VALUE ="NOM4"/>
        <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="varchar"  NAME ="SEX" VALUE ="2"/>
</SOURCE>


Pour la lecture du fichier Xlxs j'utilise la bibliothèque PANDAS, le programme qui permet de lire le fichier xls et le sotckage des informations dans un dictionnaire et le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# -*-coding:Latin-1 -*
import pandas as pd
import os   # On importe le module os qui dispose de variables 
            # et de fonctions utiles pour dialoguer avec votre 
            # système d'exploitation
 
# Récupération du dossier du script
root_dir = os.path.dirname(os.path.realpath(__file__))
 
 
# ------- Lecture du fichier Excel avec selection des colonnes
# En paramètre l'emplacement du fichier, l'onglet et les colonnes
df_xls = pd.read_excel(root_dir+"\\in\\exemple.xlsx",
sheet_name='TABLES', 
usecols=['Id_GROUPE','NOM','Sexe'])
               ,     
## -------Itère sur les lignes d'un Dataframe
groups = {}
for group in df_xls.itertuples():
    #d = {"Code_de_la_table": group.Code_de_la_table}
    d = {
     "Id_GROUPE": group.Id_GROUPE,
     "NOM": group.NOM,
     "Sexe": group.Sexe,
       }
    if group.Num_table not in groups:
        groups[group.Num_table] = [d]
    else:
        groups[group.Num_table].append(d)
#print(groups)
 
for key, value in groups.items():
 print (key,value)
pour la manipulation des fichierx XML, je souhaite utiliser le module ElementTree, mais je ne sais pas comment procéder
si vous avez une idée ou un exemple je vous remercie d'avance


Cordialement