Android——XML解析
16lz
2022-03-19
欢迎访问我的个人博客,一起学习交流。^_^
1. 待解析XML文件
<apps> <app> <id>1id> <name>Google Mapsname> <version>1.0version> app> <app> <id>2id> <name>Chromename> <version>2.1version> app>apps>
2. pull解析方式
private void parseXMLWithPull(String xmlData){ try{ XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser xmlPullParser = factory.newPullParser(); xmlPullParser.setInput(new StringReader(xmlData)); int eventType = xmlPullParser.getEventType(); String id = ""; String name = ""; String version = ""; while(eventType != XmlPullParser.END_DOCUMENT){ String nodeName = xmlPullParser.getName(); switch (eventType){ //开始解析某个节点 case XmlPullParser.START_TAG:{ if("id".equals(nodeName)){ id = xmlPullParser.nextText(); }else if("name".equals(nodeName)){ name = xmlPullParser.nextText(); }else if("version".equals(nodeName)){ version = xmlPullParser.nextText(); } break; } //完成解析某个节点 case XmlPullParser.END_TAG:{ if("app".equals(nodeName)){ Log.d("MainActivity","id is "+id); Log.d("MainActivity","name is "+name); Log.d("MainActivity","version is "+version); } break; } default: break; } eventType = xmlPullParser.next(); } }catch (Exception e){ e.printStackTrace(); } }
首先获取一个XmlPullParseFactory 的实例,并借助这个实例得到XmiPullParser 对象,然后调用XmlPullParser 的setInput() 方法将XML数据放置进去就可以开始解析了。
解析的过程,通过getEventType() 可以得到当前的解析时间,然后在一个while循环中不断地进行解析,如果当前事件不等于XmlPullParse.END_DOCUMENT ,说明解析工作还没完成,调用next() 方法后可以获得下一个解析事件。
在while循环中,我们通过getName() 方法得到当前节点的名字,如果发现节点名等于id、name或version,就调用nextText() 方法来获取节点内具体的内容,每当解析完一个app节点后就将获取到的内容打印出来。
3. SAX解析方式
4. DOM解析方式
5. 比较
有空再总结……
更多相关文章
- Android中的常见FC及解决方式整理
- Android(安卓)Intent多种传值方式
- android解析xml的通用写法
- Android(安卓)ApiDemos示例解析(178):Views->Lists->11. Multipl
- android 创建快捷方式
- android 自带 xml解析
- android解析二维数组对象key:value
- android XML解析
- Android跳转到系统Wifi界面的方式