Hallo an alle die sich etwas mit Linq auskennen.
Ich habe folgendes Problem, ich habe eine XML Datei welche Folgendermaßen aussieht:
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:
| <Equip> <Set1> <Maske> <Hersteller></Hersteller> <Bezeichnung></Bezeichnung> <Beschreibung></Beschreibung> <IMG></IMG> </Maske> <Hopper> <Hersteller /> <Bezeichnung /> <Beschreibung /> <IMG /> </Hopper> <Battlepack> <Hersteller /> <Bezeichnung /> <Beschreibung /> <IMG /> </Battlepack> </Set1> <Set2> <Maske> <Hersteller></Hersteller> <Bezeichnung></Bezeichnung> <Beschreibung></Beschreibung> <IMG></IMG> </Maske> <Hopper> <Hersteller /> <Bezeichnung /> <Beschreibung /> <IMG /> </Hopper> <Battlepack> <Hersteller /> <Bezeichnung /> <Beschreibung /> <IMG /> </Battlepack> </Set2> </Equip> |
Jetzt möchte ich quasi jedes "Item" in "Set" auslesen.
Was ich mit folgenden Code versucht habe:
C#-Quelltext
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:
| XDocument xdocument = XDocument.Load(ProfilePath + "\\" + CurrentUser.Benutzername + "\\Equip\\equip.xml");
var quary = from ItemX in xdocument.Descendants("Equip") select new Gear { Mask = new Item { Hersteller = ItemX.Element("Maske").Element("Hersteller").Value ?? "", Bezeichnung = ItemX.Element("Maske").Element("Bezeichnung").Value ?? "", Beschreibung = ItemX.Element("Maske").Element("Beschreibung").Value ?? "", ImagePath = ItemX.Element("Maske").Element("IMG").Value ?? "", }, Hopper = new Item { Hersteller = ItemX.Element("Hopper").Element("Hersteller").Value ?? "", Bezeichnung = ItemX.Element("Hopper").Element("Bezeichnung").Value ?? "", Beschreibung = ItemX.Element("Hopper").Element("Beschreibung").Value ?? "", ImagePath = ItemX.Element("Hopper").Element("IMG").Value ?? "", }, Battlepack = new Item { Hersteller = ItemX.Element("Battlepack").Element("Hersteller").Value ?? "", Bezeichnung = ItemX.Element("Battlepack").Element("Bezeichnung").Value ?? "", Beschreibung = ItemX.Element("Battlepack").Element("Beschreibung").Value ?? "", ImagePath = ItemX.Element("Battlepack").Element("IMG").Value ?? "", }, }; |
Das Problem ist, das ich immer eine NullReferenceExpeption bekomme... und ich weiß nicht warum, da ich ja mit
C#-Quelltext
schon NULL abfange...
Gear stellt eine Klasse dar welche mehrere Items hat, ein Item hat die Propertys "Hersteller, bezeichnung usw."...
Ich hoffe jemand weiß einen grund warum ich diese Objektverweis dingens bekomme
Gruß
Marco
Moderiert von
Kha: Topic aus C# - Die Sprache verschoben am So 13.02.2011 um 13:37
Moderiert von
Christian S.: Code- durch XML-Tags ersetzt
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt