android中xml解析

android中xml解析

ID:17848100

大小:73.00 KB

页数:8页

时间:2018-09-07

android中xml解析_第1页
android中xml解析_第2页
android中xml解析_第3页
android中xml解析_第4页
android中xml解析_第5页
资源描述:

《android中xml解析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Android中,解析Xml数据的三种方式:1、DOM(org.w3c.dom)“文档对象模型”方式,解析完的Xml将生成一个树状结构的对象。2、SAX(org.xml.sax)SimpleAPIforXML,以事件的形式通知程序,对Xml进行解析。3、XMLPULL(org.xmlpull.v1)类似于SAX方式,程序以“拉取”的方式对Xml进行解析。publicclassMainActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.

2、onCreate(savedInstanceState);setContentView(R.layout.activity_main);getappInfo();//从asstes文件夹下读取并解析app.xml文件,结果保存在集合中}privatevoidgetappInfo(){newThread(){ArrayListapps;//保存解析结果的集合publicvoidrun(){try{InputStreamin=getAssets().open("app.xml");XmlPullParserparser=XmlPullPar

3、serFactory.newInstance().newPullParser();parser.setInput(in,"utf-8");//设置编码格式AppBeanapp=null;for(inteventType=XmlPullParser.START_DOCUMENT;eventType!=XmlPullParser.END_DOCUMENT;eventType=parser.next()){switch(eventType){caseXmlPullParser.START_DOCUMENT://文档开始处,初始化集合apps=newArrayL

4、ist();break;caseXmlPullParser.START_TAG:Stringelement=parser.getName();if("app".equals(element)){app=newAppBean();//app标签开始处,初始化app//获取name、version和fileSize三个属性值app.setName(parser.getAttributeValue(null,"name"));app.setVersion(parser.getAttributeValue(null,"version"));ap

5、p.setFileSize(Integer.parseInt(parser.getAttributeValue(null,"fileSize")));}elseif("thumb".equals(element)){//获取thumb标签值app.setThumb(parser.nextText());}elseif("apk".equals(element)){//获取apk标签值app.setApk(parser.nextText());}elseif("intro".equals(element)){//获取intro标签值app.setIntro

6、(parser.nextText());}break;caseXmlPullParser.END_TAG:if("app".equals(parser.getName())){//app标签结束处,将app添加至集合apps.add(app);}break;}}for(AppBeanappBean:apps){//遍历集合,在日志中显示集合元素值Log.i("main",appBean.toString());}}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}

7、catch(XmlPullParserExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}};}.start();}}android SDK提供了xmlpull api,xmlpull和sax类似,是基于流(stream)操作文件,然后根据节点事件回调开发者编写的处理程序.因为是基于流的处理,因此xmlpull和sax都比较节约内存资源,不会象dom那样要把所有节点以对橡树的形式展现在内存中.xmlpull比sax更简明,而且不需要扫描完整个流.是一种基于流形式来操作文件,并且会根

8、据节点来回调程序这样就比较节约资源,不需要扫描整个流

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。