【问题标题】:Where to add XML files with data when creating an app?创建应用程序时在哪里添加带有数据的 XML 文件?
【发布时间】:2016-10-08 10:46:25
【问题描述】:
我正在创建一个应用程序,我需要从 XML 文件中获取一些数据。我有一个方法,它将数据从XML 文件填充到List<>。与 ConsoleApplication 一起使用时,XML 文件应位于 bin>debug 文件夹中。那么,问题来了,在创建 App 时,我必须把 XML 文件放在哪里?
我将 Visual Studio 2015 与 Xamarin 一起使用。
提前致谢!
【问题讨论】:
标签:
android
xml
visual-studio
xamarin.android
【解决方案1】:
推荐的方法是将文件放在Assets 文件夹中,因为它将文件视为原始二进制文件。请注意,您应该在 VisualStudio 中将此文件的 Build Action 设置为 AndroidAsset。
XDocument xdoc;
// Read the contents of our asset
AssetManager assets = this.Assets;
using (StreamReader sr = new StreamReader(assets.Open("yourXml.xml")))
{
xdoc = XDocument.Load(sr);
}
或者类似地,将所有内容作为文本字符串读取并解析为 Xml。
string content;
AssetManager assets = this.Assets;
using (StreamReader sr = new StreamReader(assets.Open("yourXml.xml")))
{
content = sr.ReadToEnd();
}
XDocument xdoc = XDocument.Parse(content);
阅读后,xdoc 已准备好进行迭代。剩下的工作是迭代和读取值并输入List<>。
var list = new List<string>();
foreach(XElement node in xdoc.Root.Nodes()) {
try {
// Assume that your children nodes are like this format; <node attr="something" />
string value = node.Attribute("attr").Value;
list.Add(value);
}
catch (Exception ex)
{
}
}
有关更多信息,本教程将指导您如何从 Asset 文件夹中读取文本文件。