无法在Application XAP包中查找文件

时间:2014-08-20 10:32:06

标签: c# xml windows-phone-8 windows-phone

我正在尝试读取以下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文件放到项目的根文件夹中时,它工作正常但如果我将我的文件放在任何文件夹下(例如/xmls/items.xml或/Assets/items.xml)得到我错误无法在应用程序XAP包中找到文件。我还编辑了xml文件的属性作为构建操作 - &gt;内容和复制到输出Dirtectoty - &gt;复制如果更新。但是相同的结果是在Application XAP Package中找不到文件。

我还提到了问题Xml file not found in xap

1 个答案:

答案 0 :(得分:0)

使用以下代码在文件夹

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

修改:获取商品值

 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());

项目类别定义:

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