如何从res文件夹中读取xml文件
我想从XML文件加载数据并将该数据分配给我的Android应用程序中的变量。如何从res文件夹中读取xml文件
在对Android可用的各种XML解析器进行了一些研究后,我认为使用的最佳解析器方法是SAX。
我读过一堆关于从Android读取XML的帖子,但是我找不到一个在'res'文件夹中使用本地文件的文章。
我发现的所有教程都通过URL加载XML文件。
有没有办法从res文件夹中加载XML?
谢谢
你可以看一下我的关于同一问题过去的问题: How to use DOM to read XML within Android applications correctly?
根据我的经验,我已将xml文件复制到res/raw
文件夹中,并能够使用正确读取它。你可以从res/layout
文件夹中加载它,但是当你解析它时,一些信息可能是二进制的,这并不理想。
将xml放入/ res/raw文件夹。它看起来像openRawResource只打开该文件夹的资源。你也可以尝试getResources()。getXml(com.MYCLass.R.xml.programs);这将返回您的XML解析器的实例。
会/我仍然可以使用SAX解析器,还是需要为此使用另一种类型的XML解析器?谢谢 – SkyeBoniwell 2011-12-19 21:09:35
我会建议使用http://jsoup.org/很容易实现我用它为许多项目。 – 2011-12-19 21:10:46
用途:
InputStream is=getResources().openRawResource(R.raw.my_xml);
得到一个输入流的XML,然后使用XMLPullParser来解析文件:
XmlPullParser xpp=XmlPullParserFactory.newInstance().newPullParser();
xpp.setInput(is,"your-encoding");
你不能在原始文件夹中使用xml文件。因为发生此错误:“预期的原始类型资源”。 但你可以很容易地把这个XML文件中的资产的文件夹,并使用它:
is = getAssets().open("myFedd.xml") ;
我只是在很多教程的一个阅读:顺便说一句,如果你想解析非编资源,如网络中的那些,您应该使用SAX(用于速度)或DOM(用于多功能性)。 Android pull语法分析器专门用于编译XML。 – SkyeBoniwell 2011-12-19 21:13:59