public void loadXML() { XElement xml = XElement.Parse(File.ReadAllText(@"scripts\extractable.xml")); XElement ex = xml.Element("list"); foreach (var m in ex.Elements()) { if (m.Name == "capsule") { CapsuleItem caps = new CapsuleItem(); caps.id = Convert.ToInt32(m.Attribute("id").Value); foreach (var stp in m.Elements()) { switch (stp.Name.LocalName) { case "item": try { CapsuleItemReward rew = new CapsuleItemReward(); rew.id = int.Parse(stp.Attribute("id").Value); rew.min = int.Parse(stp.Attribute("min").Value); rew.max = int.Parse(stp.Attribute("max").Value); rew.rate = int.Parse(stp.Attribute("rate").Value); caps.rewards.Add(rew); } catch (Exception) { Console.WriteLine("cant parse capsule " + caps.id); } break; } } items.Add(caps.id, caps); } } }