public void ParseTest() { XmlDocument xmlDoc = new XmlDocument(); Lieu l = new Lieu("TestDeLieu", new System.Drawing.Point(50, 50)); XmlNode NodeLieu = xmlDoc.CreateElement("Lieu"); XmlNode NodeNom = xmlDoc.CreateElement("Nom"); NodeNom.InnerText = l.Nom.ToString(); NodeLieu.AppendChild(NodeNom); XmlNode NodeCoords = xmlDoc.CreateElement("Coordonnées"); NodeCoords.InnerText = l.Coords.ToString(); NodeLieu.AppendChild(NodeCoords); XmlNode test = NodeLieu; // TODO: initialisez à une valeur appropriée string expected = l.Nom ; // TODO: initialisez à une valeur appropriée System.Drawing.Point Expected = l.Coords; string actual = Lieu.Parse(test).Nom; System.Drawing.Point Actual = Lieu.Parse(test).Coords; Assert.AreEqual(expected, actual); Assert.AreEqual(Expected, Actual); // Assert.Inconclusive("Vérifiez l\'exactitude de cette méthode de test."); }
//On utilise le contenu d'un noeud public static Lieu Parse(XmlNode test) { Lieu l = new Lieu(); Point coords = new Point(0, 0); string nomLieu = ""; nomLieu = test.SelectSingleNode("Nom").InnerText; //On donne le contenu du noeud Nom à la variable string Coord = test.SelectSingleNode("Coordonnées").InnerText;//On prend le texte du noeud coordonnées int i = 0; int j = 0; string numberX = ""; string numberY = ""; foreach (char c in Coord) //Pour chaque caractère { if (c == 'X') //Quand on trouve le caractère X { j = i + 3; //On se place sur le premier nombre do //On boucle à l'infini { if (Coord[j - 1] == ',') //Quand un trouve le caractère spécifié { break; } else { numberX = numberX + Coord[j - 1]; //On ajoute les numéros comme caractères les uns derrière les autres j++; } } while (true); coords.X = int.Parse(numberX); //On converti la chaîne de caractères en entier } if (c == 'Y') { j = i + 3; do { if (Coord[j - 1] == '}') { break; } else { numberY = numberY + Coord[j - 1]; j++; } } while (true); coords.Y = int.Parse(numberY); } i++; } l.Nom = nomLieu; l.Coords = coords; return l; }
public Activite(string nom) { _nom = nom; _debut = new Heure (0,0); _fin = new Heure(0, 0); _texteDescriptif = ""; _gps = new Lieu(); _texteDescriptif = ""; _listAstronaute.Add (new Astronaute(0,"")); }
//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 Activite(string nom, Heure debut, Heure fin, string texteDescriptif, List<Astronaute> listAst, Lieu lieu) : this(nom, debut, fin, texteDescriptif) { _listAstronaute = listAst; _gps = lieu; }