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