如何在窗口手机7中加载位于应用程序文件夹内的XML文件?

时间:2010-12-27 13:10:21

标签: c# silverlight windows-phone-7 linq-to-xml

我正在开发window phone 7应用程序。我是窗口手机7应用程序的新手。我通过右键单击项目并在项目中添加了XML文件。选择添加 - >新物品。然后,我可以使用以下代码轻松地在我的应用程序中加载XML文件

IsolatedStorageFile isfData = IsolatedStorageFile.GetUserStoreForApplication();
            XDocument doc = null;
            IsolatedStorageFileStream isfStream = null;
            if (isfData.FileExists(strXMLFile))
            {
                isfStream = new IsolatedStorageFileStream(strXMLFile, FileMode.Open, isfData);
                doc = XDocument.Load(isfStream);
                isfStream.Close();
            }
            else
            {
                doc = XDocument.Load(strXMLFile);
                isfStream = new IsolatedStorageFileStream(strXMLFile, FileMode.CreateNew, isfData);
                doc.Save(isfStream);
                isfStream.Close();
            }

通过使用上面的代码,我可以执行read&在我的XML文件中写入操作。

但是当我将XML文件放入文件夹时会出现问题。我的问题如下: 我通过右键单击项目名称&amp ;,在我的项目中添加了一个名为“XML Files”的文件夹。选择添加 - >视觉工作室中的新文件夹。然后我通过右键单击文件夹&amp ;,将XML文件添加到'XML Files'文件夹中。选择Add-> New Item。当我将XML文件放入文件夹时,我无法在我的应用程序中加载它。我也试过以下陈述

isfStream = new IsolatedStorageFileStream("/XML Files/"+strXMLFile, FileMode.Open, isfData);

我在

收到错误
doc = XDocument.Load(strXMLFile);

我在应用程序xap包中收到错误“找不到文件'/ XML Files / A.xml'。”我该怎么办 ?如何加载文件夹内的XML文件?我的代码有什么问题吗?能否请您提供我可以解决上述问题的任何代码或链接?

1 个答案:

答案 0 :(得分:11)

首先,确保XML文件的Build Action设置为ContentCopy to output选项设置为Copy if newer(或Copy always)。然后,试试这个:

XDocument doc = XDocument.Load( "XML Files/MyXmlFile.xml" );

请注意,没有前导斜杠(/);几天前我花了几个小时坚持这个愚蠢的问题。