public static List<Eintrag> LeseEintraegeAusDatei(string dieDatei) { List<Eintrag> meineEintraege = new List<Eintrag>(); if (!File.Exists(dieDatei)) { Console.WriteLine("[Eintrag.LeseEintraegeAusDatei] Datei " + dieDatei + " nicht gefunden"); return meineEintraege; } XmlDocument doc = new XmlDocument(); //aus xml laden doc.Load(dieDatei); XmlElement wurzel = doc.DocumentElement; for (int i = 0; i < Eintrag.EINTRAG_TYPEN.Length; ++i) { string xmlNodeName = Eintrag.EINTRAG_TYPEN[i]; XmlNodeList eintragListe = wurzel.SelectNodes("./" + xmlNodeName); //noch eine Art der Debug Ausgabe, aber unklar wie in mono aktivierbar... Debug.WriteLine("\nAnzahl der " + xmlNodeName + " in der xml Datei " + dieDatei + ": " + eintragListe.Count); foreach (XmlNode eintrag in eintragListe) { Eintrag neuerEintrag; try { switch (xmlNodeName) { case "JaehrlichesEreignisAnFestemTag": neuerEintrag = new JaehrlichesEreignisAnFestemTag(eintrag); meineEintraege.Add(neuerEintrag); break; case "Geburtstag": neuerEintrag = new Geburtstag(eintrag); meineEintraege.Add(neuerEintrag); break; case "EinmaligerTermin": neuerEintrag = new EinmaligerTermin(eintrag); meineEintraege.Add(neuerEintrag); break; case "RelativesEreignisNterWochentagImMonat": neuerEintrag = new RelativesEreignisNterWochentagImMonat(eintrag); meineEintraege.Add(neuerEintrag); break; case "RelativesEreignisLetzteWocheImMonat": neuerEintrag = new RelativesEreignisLetzteWocheImMonat(eintrag); meineEintraege.Add(neuerEintrag); break; } //ende switch } catch (EintragParseException ) { Console.WriteLine("Eintrag kann nicht hinzugefügt werden"); } } //ende foreach XmlNode } //ende for Schleife return meineEintraege; }
public static List <Eintrag> LeseEintraegeAusDatei(string dieDatei) { List <Eintrag> meineEintraege = new List <Eintrag>(); if (!File.Exists(dieDatei)) { Console.WriteLine("[Eintrag.LeseEintraegeAusDatei] Datei " + dieDatei + " nicht gefunden"); return(meineEintraege); } XmlDocument doc = new XmlDocument(); //aus xml laden doc.Load(dieDatei); XmlElement wurzel = doc.DocumentElement; for (int i = 0; i < Eintrag.EINTRAG_TYPEN.Length; ++i) { string xmlNodeName = Eintrag.EINTRAG_TYPEN[i]; XmlNodeList eintragListe = wurzel.SelectNodes("./" + xmlNodeName); //noch eine Art der Debug Ausgabe, aber unklar wie in mono aktivierbar... Debug.WriteLine("\nAnzahl der " + xmlNodeName + " in der xml Datei " + dieDatei + ": " + eintragListe.Count); foreach (XmlNode eintrag in eintragListe) { Eintrag neuerEintrag; try { switch (xmlNodeName) { case "JaehrlichesEreignisAnFestemTag": neuerEintrag = new JaehrlichesEreignisAnFestemTag(eintrag); meineEintraege.Add(neuerEintrag); break; case "Geburtstag": neuerEintrag = new Geburtstag(eintrag); meineEintraege.Add(neuerEintrag); break; case "EinmaligerTermin": neuerEintrag = new EinmaligerTermin(eintrag); meineEintraege.Add(neuerEintrag); break; case "RelativesEreignisNterWochentagImMonat": neuerEintrag = new RelativesEreignisNterWochentagImMonat(eintrag); meineEintraege.Add(neuerEintrag); break; case "RelativesEreignisLetzteWocheImMonat": neuerEintrag = new RelativesEreignisLetzteWocheImMonat(eintrag); meineEintraege.Add(neuerEintrag); break; } //ende switch } catch (EintragParseException) { Console.WriteLine("Eintrag kann nicht hinzugefügt werden"); } } //ende foreach XmlNode } //ende for Schleife return(meineEintraege); }