【发布时间】:2011-12-17 13:52:44
【问题描述】:
我正在创建一个 Windows Phone 7 应用程序,但在更改位于隔离存储内部的 xml 文件中的值时遇到了一些麻烦。 我的方法在这里:
public void updateItemValueToIsoStorage(string id,
string itemAttribute,
string value)
{
using (var isoStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (var stream = isoStorage.OpenFile(
"items.xml", FileMode.Open, FileAccess.ReadWrite))
{
XDocument xml = XDocument.Load(stream, LoadOptions.None);
//According to given parameters,
//set the correct attribute to correct value.
var data = from c in xml.Descendants("item")
where c.Attribute("id").Value == id
select c;
foreach (Object i in data)
{
xml.Root.Attribute(itemAttribute).SetValue(value);
}
}
}
}
我在隔离存储中的 xml 文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<items>
<item id="0" title="Milk" image="a.png" lastbought="6" lastingtime="6" />
<item id="1" title="Cheese" image="b.png" lastbought="2" lastingtime="20" />
<item id="2" title="Bread" image="c.png" lastbought="3" lastingtime="8" />
</items>
我从这一行得到一个 NullReferenceException:
xml.Root.Attribute(itemAttribute).SetValue(value);
有什么想法我应该怎么做吗? 干杯。
【问题讨论】:
标签: xml windows-phone-7 nullreferenceexception