C# 在应用程序XAP包中找不到文件
我正在尝试读取一个XML文件,该文件是:C# 在应用程序XAP包中找不到文件,c#,xml,windows-phone-8,windows-phone,C#,Xml,Windows Phone 8,Windows Phone,我正在尝试读取一个XML文件,该文件是: <root> <resources> <item>itemname1</item> </resources> <resources> <item>itemname2</item> </resources> </root> 当我将XML文件放在项目的根文件夹中时,其工作正常,但如果我将文件放在任何文件夹下
<root>
<resources>
<item>itemname1</item>
</resources>
<resources>
<item>itemname2</item>
</resources>
</root>
当我将XML文件放在项目的根文件夹中时,其工作正常,但如果我将文件放在任何文件夹下,例如/xmls/items.XML或/Assets/items.XML,则会出现无法在应用程序XAP包中找到文件的gets me错误。我还编辑了xml文件的属性,如buildaction->Content和Copy To Output dirtecty->Copy if newer。但结果与在应用程序XAP包中找不到文件相同
我还提出了一个问题使用下面的代码将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的替代解决方案:
如果我应用XDocument loadedData=appDataXml.Document,那么它给我的对象引用未设置为实例。它已经使用System.Xml.Linq在顶部添加了以下内容:;它可以很好地工作,但任何其他不使用循环的替代方案,因为我将有多个xml,并且拥有所有时间循环对于只访问任何元素来说都是不可行的。非常感谢
var allItems = from o in appDataXml.Elements("resources")
select o;
foreach (var item in allItems)
{
var itemValue = item.Value;
}
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; }
}