【问题标题】:Can't load XML from Resource/Drawable/无法从 Resource/Drawable/ 加载 XML
【发布时间】:2016-10-07 22:53:44
【问题描述】:

我已将我的 Xml 保存在 Resource/Drawable/ 中。我把它放在这里是因为它是唯一可以保持没有任何错误的地方。

无论如何这都是例外:

System.IO.FileNotFoundException:找不到文件“/sds”。

如何找到路径?

这是我的代码:

String conditionName = "";
XDocument xml = XDocument.Load("@drawable/LightConditions.xml");                
foreach (XElement item in xml.Root.Elements("Condizione"))
{
    if (item.Element("EV").Value == EV)
    {
        conditionName = item.Parent.Element("Nome").Value;
        break;
    }
    //do something
}

【问题讨论】:

  • /resource/drawable 不适用于任意 XML 文件。它仅适用于可绘制对象。将您的 XML 添加到资产。

标签: c# android xml xamarin xamarin.android


【解决方案1】:

您需要将 .xml 放在 Assets 文件夹中,并将构建操作标记为 AndroidAsset

然后您可以使用AssetManager 通过Stream 访问它:

string conditionName = "";
using (StreamReader sr = new StreamReader(this.Assets.Open("LightConditions.xml")))
{
    XDocument xml = XDocument.Load(sr);
    foreach (XElement item in xml.Root.Elements("Condizione"))
    {
        if (condizione.Element("EV").Value == EV)
        {
            conditionName = item.Parent.Element("Nome").Value;
            break;
        }
        //do something
    }
}

Assets 上查阅Xamarin.Android 指南

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    相关资源
    最近更新 更多