【发布时间】:2016-08-15 05:43:57
【问题描述】:
我有一个位于 Assets 文件夹中的 XML 文件。尝试使用 Linq 读取文件时我没有遇到任何问题。但是,当我想写入该文件时,我看不到任何错误,并且目标元素永远不会更新。
我的代码如下:
private static readonly string mealsXMLPath = Path.Combine(Package.Current.InstalledLocation.Path, "Assets/meals.xml");
private XDocument loadedData;
在构造函数中我有初始化代码:
loadedData = XDocument.Load(mealsXMLPath);
我用来更新现有元素值的实际代码在这里
public async void UpdateQuantity(Dictionary<int, int> orderdetails)
{
XDocument xmlFile = XDocument.Load(mealsXMLPath);
foreach(var key in orderdetails.Keys)
{
XElement upd = (from order in xmlFile.Descendants("Meal")
where order.Element("ID").Value == key.ToString()
select order).Single();
upd.Element("Avaibility").Value = (Convert.ToInt32(upd.Element("Avaibility").Value) - orderdetails[key]).ToString();
}
}
我尝试了其他内置方法,例如 xdoc.save("path") 和 xml...Create(..)。但似乎没有一个在 C# Windows 8 应用程序中有效。
【问题讨论】:
-
InstalledLocation 是只读的...相关:SQLite for Windows Runtime is returning an “ReadOnly” error SQLiteException object
-
我是 Windows 8 应用程序开发的初学者。您能否提供一个解决方案,使我能够实现我的目标。
-
你的 xml 可能有一个命名空间,这就是为什么没有更新。
标签: c# xml linq xaml windows-store-apps