无法在应用程序XAP包中找到文件

本文关键字:包中找 文件 XAP 应用程序 | 更新日期: 2023-09-27 18:18:45

我正在尝试读取XML文件,该文件是:

<root>
  <resources>
    <item>itemname1</item>
  </resources>
  <resources>
    <item>itemname2</item>
  </resources>
</root>
c#代码:
        XDocument loadedData = XDocument.Load("items.xml");
        var data = from query in loadedData.Descendants("resources")
                   select new Item
                   {
                       item = (string)query.Element("item")
                   };

当我把我的XML文件到项目的根文件夹其工作良好,但如果我把我的文件在任何文件夹下(例如/XML/items.xml或/Assets/items.xml)它得到我的错误,不能在应用程序XAP包中找到文件。我还编辑了xml文件的属性作为构建操作->内容和复制到输出直接->如果更新则复制。但同样的结果无法在应用程序XAP包中找到文件。

我还参考了xap中没有找到的问题Xml文件

无法在应用程序XAP包中找到文件

使用下面的代码加载文件夹

中的XML文件
 StreamResourceInfo xml = Application.GetResourceStream(new Uri("Assets/items.xml", UriKind.Relative));
        var appDataXml = XElement.Load(xml.Stream);

Edit:获取项目值

 var allItems = from o in appDataXml.Elements("resources")
                   select o;
        foreach (var item in allItems)
        { 
                var itemValue = item.Value;
        }

不使用ForEach的替代解决方案:

        var allItems = from o in appDataXml.Elements("resources")
                       select new Items
                       {
                           item = (string)o.Element("item")
                       };
        var Firstitem = allItems.Cast<Items>().ElementAt(0);
        MessageBox.Show(Firstitem.item.ToString());

Items类定义:

public class Items
{
    public string item { get; set; }
}