我想从XML文件加载数据并将该数据分配给我的Android应用程序中的变量。
在对Android可用的各种XML解析器进行一些研究之后,我认为使用的最佳解析器方法是SAX。
我已经阅读了大量关于从Android读取XML的帖子,但我找不到在“res”文件夹中使用本地文件的帖子。
我发现的所有教程都是通过URL加载XML文件。
有没有办法从res文件夹加载XML?
由于
答案 0 :(得分:2)
将xml放入/ res / raw文件夹。看起来openRawResource只打开该文件夹中的资源。您也可以尝试getResources()。getXml(com.MYCLass.R.xml.programs);这将返回XML解析器的实例。
答案 1 :(得分:1)
使用:
InputStream is=getResources().openRawResource(R.raw.my_xml);
获取XML的输入流,然后使用XMLPullParser解析文件:
XmlPullParser xpp=XmlPullParserFactory.newInstance().newPullParser();
xpp.setInput(is,"your-encoding");
答案 2 :(得分:1)
您可以查看我过去关于同一问题的问题:How to use DOM to read XML within Android applications correctly?
根据我的经验,我已将xml文件复制到res/raw
文件夹中,并且能够使用res.openRawResource(R.raw.the_id)
在该文件夹中正确读取该文件。您可以从res/layout
文件夹加载它,但解析它时的一些信息可能是二进制文件,这可能不太理想。
答案 3 :(得分:0)
您无法在原始文件夹中使用xml文件。因为发生了这个错误:"原始类型的预期资源。" 但是您可以轻松地将此xml文件放在assets文件夹中,并将其用于:
is = getAssets().open("myFedd.xml") ;