Hi,
ich habe eine XML-Datei mit folgendem Aufbau:
XML-Daten
1: 2: 3: 4: 5:
| <jobs> <beruf name="xy"> <auftrag></auftrag> </beruf> </jobs> |
Jetzt habe ich folgendes Problem, solange ich nur einen Bereich für Beruf habe läuft mein Programm super, aber sobald ich mehr als einen habe nicht mehr.
Folgenden Code habe ich aktuell:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63:
| while (reader.ReadToFollowing("beruf")) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "beruf") { String attr = ""; jobs = null; for (int i = 0; i < reader.AttributeCount; i++) { attr = reader.GetAttribute(i); } if (attr.Equals("Ruestungsschmied")){ jobs = new JobListRuestungsschmied(); } if (attr.Equals("Alchemie")) { jobs = new JobListAlchemie(); } if (attr.Equals("Waffenschied")){ jobs = new JobListWaffenschmied(); } if(attr.Equals("Koch")){ jobs = new JobListKoch(); } if (attr.Equals("Schneider")){ jobs = new JobListSchneider(); } if (attr.Equals("Handwerk")){ jobs = new JobListHandwerk(); }
while (reader.ReadToFollowing("auftrag")) { Rezept rez = new Rezept(); if (reader.HasAttributes) { for (int i = 0; i < reader.AttributeCount; i++) { if (i == 0) { lvl = Convert.ToInt32(reader.GetAttribute(i)); } } } while(reader.ReadToDescendant("zutat")){ if(reader.HasAttributes){ for (int i = 0; i < reader.AttributeCount; i++) { if (i == 0) { mats = material.getMaterial(reader.GetAttribute(i)); } else { anz = Convert.ToInt32(reader.GetAttribute(i)); } } rez.add(mats, anz); } } jobs.Add(lvl, rez);
} } |
Hat wer ne Idee, was ich falsch mache?