欢迎来到天天文库
浏览记录
ID:17848100
大小:73.00 KB
页数:8页
时间:2018-09-07
《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、据节点来回调程序这样就比较节约资源,不需要扫描整个流
此文档下载收益归作者所有