如何从res文件夹中读取xml文件

时间:2011-12-19 20:56:22

标签: android

我想从XML文件加载数据并将该数据分配给我的Android应用程序中的变量。

在对Android可用的各种XML解析器进行一些研究之后,我认为使用的最佳解析器方法是SAX。

我已经阅读了大量关于从Android读取XML的帖子,但我找不到在“res”文件夹中使用本地文件的帖子。

我发现的所有教程都是通过URL加载XML文件。

有没有办法从res文件夹加载XML?

由于

4 个答案:

答案 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") ;