【发布时间】:2012-12-09 13:30:59
【问题描述】:
我正在尝试从 WP7 中的 XML 文档中读取数据,并且遇到了一个奇怪的错误,当我在重新启动 WP7 模拟器后第一次运行我的程序时遇到了一个我根本没有得到的错误,但如果我运行它在不关闭模拟器的调试中,它给了我运行时错误:'XmlException 未处理在应用程序 xap 包中找不到文件'appdata.xml'。这很奇怪,因为我先检查文件是否存在:
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
if (store.FileExists("appdata.xml"))
{
XDocument loadedData = XDocument.Load("appdata.xml"); // <-- runtime error
//code for parsing xml to variables
}
}
它进入 if 语句,所以文件应该存在,但 XDocument 由于某种原因不喜欢它,有人有什么想法吗?
为了进一步参考,当我点击应用程序中的按钮时,我如何保存数据,如果不调用此函数也不会发生错误:
private void SaveData()
{
rulesData = new AppData(StartCashRule.Text, LandGoRule.Text, FreeParkingRule.Text, FullCircuitRule.Text, AuctionRule.Text);
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
IsolatedStorageFileStream ifStream = new IsolatedStorageFileStream("appdata.xml", FileMode.OpenOrCreate, store);
using (XmlWriter writer = XmlWriter.Create(ifStream))
{
writer.WriteStartDocument();
writer.WriteStartElement("myData");
writer.WriteElementString("Starting_Cash", rulesData.myStartingCash);
writer.WriteElementString("Land_on_Go_Data", rulesData.myLandOnGo);
writer.WriteElementString("Free_Parking_Data", rulesData.myFreeParking);
writer.WriteElementString("Full_Circuit_Data", rulesData.myFullCircuit);
writer.WriteElementString("Auction_Data", rulesData.myAuction);
writer.WriteEndElement();
writer.WriteEndDocument();
}
ifStream.Close();
}
}
谢谢 - 瑞恩
【问题讨论】:
标签: c# .net xml xml-parsing windows-phone