我有一个xml文件名“person.xml”,结构如下
<?xml version="1.0" encoding="utf-8" ?>
<people>
<person id="1" name="" age="" />
<person id="2" name="" age="" />
<person id="3" name="" age="" />
</people>
我想更新个人ID 1的名称和年龄;我的代码是这样的
using(IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())
{
filename = "person.xml";
if(storage.FileExists(filename))
{
using(IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream(filename,FileMode.Open,storage))
{
XDocument doc = XDocument.Load("person.xml");
foreach (var item in (from item in doc.Descendants("person")
where item.Attribute("id").Equals("1")
select item).ToList())
{
item.Attribute("name").SetValue("Hello");
item.Attribute("age").SetValue("24");
}
doc.Save(isoStream);
}
}
}
然而,在我运行应用程序并检查person.xml中的值之后,我看到person id 1上的值从未更新过。当我在运行时期间取消应用程序时,断点在“if(storage.FileExists(filename))”行跳过,好像文件person.xml不存在但我确实创建了它并在解决方案资源管理器中看到它。
最后,请原谅我,我知道我的问题可能会像我在updating an existing xml file in Windows Phone和网络上的其他来源一样重复,但在他们之后,我仍然无法通过自己的问题解决问题。