diff --git a/src/ClassesXML.c b/src/ClassesXML.c
index 1839ff82e5b99b0f22d0190cb5eda833a4c8e305..12611ce60164751e0e0fbc4527ef793c0910c6db 100644
--- a/src/ClassesXML.c
+++ b/src/ClassesXML.c
@@ -1,30 +1,37 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <roxml.h>
+#include "ClassesXML.h"
 #include "structures.h"
 
-int startClassesXML(Classe **tableauClasses, const char *filename);
 
 
-int startClassesXML(Classe **tableauClasses, const char *filename)   // Remplit le tableau de classes à partir du fichier XML
+
+
+Classe** Remplir_Classes(const char *filename)   // Remplit le tableau de classes à partir du fichier XML
 {
-    printf("Chargement des classes\n");
+
     node_t *root, *Classes, *Classe;
-    int nombre_classes=0;
-    root = roxml_load_doc(filename);
-    Classes = roxml_get_chld(root, NULL, 0);
-    nombre_classes = roxml_get_chld_nb(Classes);
+    unsigned int i=0, nb_classes=0;
 
+    char PV_text; /* a supprimer */
 
+    root = roxml_load_doc(filename);            /* Ouvre le doc XML et créé le noeud de base */
+    Classes = roxml_get_chld(root, NULL, 0);    /* Descend d'un niveau dans l'arborescence */
+    nb_classes = roxml_get_chld_nb(Classes);    /* Récupère le nombre de classes entrées dans le fichier XML */
+    printf("Classes contient %d enfants\n", nb_classes);
+    //roxml_free_node(Classes);
 
-//    LibClasses=(????*)malloc(sizeof(sizeof(Classe)))
 
-//    for(i=0; i<map1.nombre_elements; i++)  /* Boucle de remplissage des classes */
-/*    {
+    printf("Chargement des classes\n");
+    Classe *ListeClasse = malloc(nb_classes * sizeof(Classe));
+
+    for(i=0; i<nb_classes; i++)   //Boucle de remplissage des classes
+    {
 
     char *id_text, *name_text, *PV_text, *PM_text, *MV_text, *DESC_text;
 
-    Classe = roxml_get_chld(Classes, NULL, 0);
+    Classe = roxml_get_chld(Classes, NULL, i);
 
     node_t *Skills, *ID, *NAME, *PV, *PM, *MV, *DESC;
 
@@ -35,7 +42,7 @@ int startClassesXML(Classe **tableauClasses, const char *filename)   // Remplit
     MV = roxml_get_attr(Classe, "MV", 0);
     DESC = roxml_get_attr(Classe, "Desc", 0);
 
-    }
+
 
     id_text = roxml_get_content(ID, NULL, 0, NULL);
     name_text = roxml_get_content(NAME, NULL, 0, NULL);
@@ -50,6 +57,12 @@ int startClassesXML(Classe **tableauClasses, const char *filename)   // Remplit
     printf("Le nombre de PM est : %s\n", PM_text);
     printf("Le nombre MV est : %s\n", MV_text);
     printf("La description est : %s\n", DESC_text);
-*/
+
+    ListeClasse[i][]= ?
+
+    }
+
+return ListeClasse;
+
 }
 
diff --git a/src/ClassesXML.h b/src/ClassesXML.h
new file mode 100644
index 0000000000000000000000000000000000000000..f7a26102a14480b0a2aa132943fd71a3874f813b
--- /dev/null
+++ b/src/ClassesXML.h
@@ -0,0 +1,11 @@
+#ifndef CLASSESXML_H_INCLUDED
+#define CLASSESXML_H_INCLUDED
+
+#include "structures.h"
+#include "classe.h"
+#include "structures.h"
+
+
+Classe** Remplir_Classes(const char *filename);
+
+#endif // CLASSESXML_H_INCLUDED
diff --git a/src/classe.c b/src/classe.c
index e20b0523b3859645b7c539fd2c80fb305f401051..a240f9c897b320e8591d93b2d032b8836ebccae7 100644
--- a/src/classe.c
+++ b/src/classe.c
@@ -3,12 +3,16 @@
 #include <roxml.h>
 #include "classe.h"
 #include "structures.h"
+#include "ClassesXML.h"
 
+Classe** Librairie_Classes(char *filename)
+{
 
+Classe **Tab_Classes;
+Tab_Classes = Remplir_Classes("Classes.xml");
 
 
 
 
-Classe **Tableau_Classes;
-
 
+}
diff --git a/src/classe.h b/src/classe.h
index 0bd1efc8f1e3fdd25d6edae7a74d23787be399cf..2df41013e3aead3a379e408be9cf0377d8fc82f1 100644
--- a/src/classe.h
+++ b/src/classe.h
@@ -1,6 +1,11 @@
 #ifndef CLASSE_H_INCLUDED
 #define CLASSE_H_INCLUDED
 
+#include "structures.h"
+#include "ClassesXML.h"
+#include "structures.h"
 
 
+Classe ** Librairie_Classes(char *filename);
+
 #endif // CLASSE_H_INCLUDED