I have a method that is suppose to edit a xml file:
public void EditItem(Item item, string xml)
{
Data = XDocument.Load(HttpContext.Current.Server.MapPath("~/App_Data/Items/" + xml + ".xml"));
XElement node = Data.Root.Elements("item").Where(i => (string)i.Element("ID") == item.ID).FirstOrDefault();
node.SetElementValue("ID", item.ID);
node.SetElementValue("Name", item.Name);
node.SetElementValue("Type", item.Type);
node.SetElementValue("Kr", item.Kr);
node.SetElementValue("Euro", item.Euro);
Data.Save(HttpContext.Current.Server.MapPath("~/App_Data/Tables/" + xml + ".xml"));
}
I get this validation error thru a try/catch in my controller: "Object reference not set to an instance of an object." Through some debugging, I found that "node" is null, even though "Data" contains all the right data from the xml, and the model.ID is correct.
the wierd thing is, that I have it working in another repo where the xml isnt dynamic, and the XDocument obj is loaded in the constructor.
Any ideas what causes it? Or maybe some ideas on a workaround.
Update. Xml snippet:
<?xml version="1.0" encoding="utf-8"?>
<catagory id="0">
<module>
<item>
<ID>101</ID>
<Name>ClassicoTable(35x100x100)</Name>
<Type>Model</Type>
<Kr>0</Kr>
<Euro>0</Euro>
<DataType>ClassicoTableA</DataType>
</item>
<item>
<ID>100</ID>
<Name>ClassicoTable(102x100x140)</Name>
<Type>Model</Type>
<Kr>0</Kr>
<Euro>0</Euro>
<DataType>ClassicoTableB</DataType>
</item>
......
</module>
</catagory id="0">