// lecture xml et generation objets public void chargerXml(XmlDocument xmlDoc, Mission M) { XmlNodeList nodelistMission = xmlDoc.GetElementsByTagName("Mission"); List<Astronaute> listAstronautes = new List<Astronaute>(); List<CategorieActivite> listCategorieActivite = new List<CategorieActivite>(); foreach (XmlNode nodeMission in nodelistMission) { XmlNodeList nodelistAstronautes = nodeMission.SelectNodes("Liste_Astronaute"); foreach (XmlNode nodeAstronautes in nodelistAstronautes) { XmlNodeList nodelistAstronaute = xmlDoc.GetElementsByTagName("Astronaute"); string nom = ""; int id = 0; foreach (XmlNode nodeAstronaute in nodelistAstronaute) { id = int.Parse(nodeAstronaute.SelectSingleNode("Id").InnerText); nom = nodeAstronaute.SelectSingleNode("Nom").InnerText; Astronaute a = new Astronaute(id, nom); M._listAstronautes.Add(a); } } XmlNodeList nodelistCategorieActivite = nodeMission.SelectNodes("Liste_Catégorie_Activité"); foreach (XmlNode nodeCategorieActivite in nodelistCategorieActivite) { XmlNodeList nodelisteCategorieActivite = nodeCategorieActivite.SelectNodes("Catégorie_Activité"); foreach (XmlNode nodeCategoriedActivite in nodelisteCategorieActivite) { string nom = ""; List<Activite> listActivite = new List<Activite>(); nom = nodeCategoriedActivite.SelectSingleNode("NomCatégorie").InnerText; XmlNodeList nodelistActivite = nodeCategoriedActivite.SelectNodes("Liste_Activité"); foreach (XmlNode nodeActivite in nodelistActivite) { string nome = ""; XmlNodeList nodelisteActivite = nodeActivite.SelectNodes("Activité"); foreach (XmlNode nodeActivitee in nodelisteActivite) { nome = nodeActivitee.SelectSingleNode("NomActivité").InnerText; Activite act = new Activite(nome); listActivite.Add(act); } } CategorieActivite c = new CategorieActivite(nom, listActivite); M.AddCategorie(c); } } } M.Listcat = Listcat; }
//Lecture XML et génération objets public void chargerXml(XmlDocument xmlDoc, Mission M) { XmlNodeList nodelistCalendrier = xmlDoc.GetElementsByTagName("Calendrier_Martien"); //On crée une liste de tous les éléments dans tout le document qui portent le nom de Calendrier_Martien CalendrierMartien c = new CalendrierMartien(); foreach (XmlNode nodeCalendrier in nodelistCalendrier) //Pour tout les noeuds présents dans notre liste d'élements (ici on a juste un élément) { c.Debut = DateTime.Parse(nodeCalendrier.SelectSingleNode("Début").InnerText); //La date de début du calendrier est égale à ce qui est contenu dans le seul noeud portant le nom début c.Fin = DateTime.Parse(nodeCalendrier.SelectSingleNode("Fin").InnerText); c.Last= DateTime.Parse(nodeCalendrier.SelectSingleNode("Last").InnerText); c.Day = int.Parse(nodeCalendrier.SelectSingleNode("Jour").InnerText); c.Heure = int.Parse(nodeCalendrier.SelectSingleNode("Heure").InnerText); c.Minute = int.Parse(nodeCalendrier.SelectSingleNode("Minute").InnerText); c.Seconde = int.Parse(nodeCalendrier.SelectSingleNode("Seconde").InnerText); XmlNodeList nodelistJours = nodeCalendrier.SelectNodes("Liste_Jour"); foreach (XmlNode nodeJour in nodelistJours) { XmlNodeList nodelistJour = nodeJour.SelectNodes("Jour"); foreach (XmlNode jour in nodelistJour) { string CompteRendu = ""; int num = 0; bool[] tabHoraires = new bool[148]; Jour j = new Jour(CompteRendu, num, tabHoraires); j.CompteRendu = jour.SelectSingleNode("Compte_Rendu").InnerText; j.Numero = int.Parse(jour.SelectSingleNode("Numéro").InnerText); j.Sortie = bool.Parse(jour.SelectSingleNode("Sortie").InnerText); List<Activite> listeActivites = new List<Activite>(); XmlNodeList nodelistActivite = jour.SelectNodes("Liste_Activité"); foreach (XmlNode nodeActivite in nodelistActivite) { XmlNodeList nodelisteActivite = nodeActivite.SelectNodes("Activité"); foreach (XmlNode Activite in nodelisteActivite) { Heure debut = new Heure(0, 0); Heure fin = new Heure(0, 0); Lieu gps = new Lieu(); List<Astronaute> listAstronaute = new List<Astronaute>(); Activite a = new Activite(""); a.Nom = Activite.SelectSingleNode("Nom").InnerText; debut.Heures = int.Parse(Activite.SelectSingleNode("Heure_Debut").InnerText); fin.Heures = int.Parse(Activite.SelectSingleNode("Heure_Fin").InnerText); debut.Minutes = int.Parse(Activite.SelectSingleNode("Minute_Debut").InnerText); fin.Minutes = int.Parse(Activite.SelectSingleNode("Minute_Fin").InnerText); a.Debut = new Heure(debut.Heures, debut.Minutes); a.Fin = new Heure(fin.Heures, fin.Minutes); gps = Lieu.Parse(Activite.SelectSingleNode("Lieu")); a.Gps = gps; List<Astronaute> listAstr = new List<Astronaute>(); XmlNodeList nodelistAstronaute = Activite.SelectNodes("Liste_Astronaute"); foreach (XmlNode nodeAstronaute in nodelistAstronaute) { string nomAst = ""; int id = 0; XmlNodeList nodeAstronautee = nodeAstronaute.SelectNodes("Astronaute"); foreach (XmlNode nodeAstro in nodeAstronautee) { id = int.Parse(nodeAstro.SelectSingleNode("Id").InnerText); nomAst = nodeAstro.SelectSingleNode("Nom").InnerText; Astronaute ast = new Astronaute(id, nomAst); listAstr.Add(ast); } } a.ListAstronaute = listAstr; a.TexteDescriptif = Activite.SelectSingleNode("Texte_Descriptif").InnerText; listeActivites.Add(a); } } j.ListeActivites = listeActivites; XmlNodeList nodelistTabHoraire = jour.SelectNodes("Tableau_Horaire"); foreach (XmlNode nodeListeLibre in nodelistTabHoraire) { XmlNodeList nodelistLibre = nodeListeLibre.SelectNodes("Libre"); int i = 0; foreach (XmlNode nodeLibre in nodelistLibre) { tabHoraires[i] = bool.Parse(nodeLibre.InnerText); i++; } } j.TabHoraires = tabHoraires; c.Jours.Add(j); } } } M.Calendar = c; }
public void chargerXml2(XmlDocument xmlDoc, Mission M) { XmlNodeList nodelistMission = xmlDoc.GetElementsByTagName("Mission"); CalendrierMartien calendar = new CalendrierMartien(); foreach (XmlNode nodeMission in nodelistMission) { XmlNodeList nodelistCalendrierMartien = nodeMission.SelectNodes("Calendrier_Mission"); foreach (XmlNode nodeCalendrierMartien in nodelistCalendrierMartien) { calendar.chargerXml(xmlDoc, this); } } }