Andriod 使用XmlPull解析XML文件
2016-03-17 21:18
579 查看
1、基本原理:
常用的有:
XmlPullParser.END_DOCUMENT
XmlPullParser.START_DOCUMENT
XmlPullParser.START_TAG
XmlPullParser.END_TAG
XmlPullParser.TEXT
分别代表着XML文档的结束,开始,标签的开始,标签的结束,内容
2、解析过程
1.首先获得XmlPullPraserFactory对象,之后借助这个对象获取到XmlPullPraser对象。
2.调用XmlPullPraser的setInput方法将获取到的xml文件流放入对象中,并指定相应编码格式。
3.通过XmlPullPraser的getEventType方法得到当前解析事件,开始while解析,如果当前事件不是XmlPullParser.END_DOCUMENT文档的结束,则继续解析。
4.逐个解析某个结点,从结点头到结点尾,之后继续循环。
常用的有:
XmlPullParser.END_DOCUMENT
XmlPullParser.START_DOCUMENT
XmlPullParser.START_TAG
XmlPullParser.END_TAG
XmlPullParser.TEXT
分别代表着XML文档的结束,开始,标签的开始,标签的结束,内容
private void parseXMLWithPull(InputStream in) throws IOException {//解析xml数据 try { XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser xmlPullParser = factory.newPullParser(); xmlPullParser.setInput(in,"utf-8"); 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.i("MainActivity","id is"+id); Log.i("MainActivity","name is"+name); Log.i("MainActivity","version is"+version); } break; } default: break; } eventType = xmlPullParser.next(); } } catch (XmlPullParserException e) { e.printStackTrace(); } }
2、解析过程
1.首先获得XmlPullPraserFactory对象,之后借助这个对象获取到XmlPullPraser对象。
2.调用XmlPullPraser的setInput方法将获取到的xml文件流放入对象中,并指定相应编码格式。
3.通过XmlPullPraser的getEventType方法得到当前解析事件,开始while解析,如果当前事件不是XmlPullParser.END_DOCUMENT文档的结束,则继续解析。
4.逐个解析某个结点,从结点头到结点尾,之后继续循环。
相关文章推荐
- 数据窗口技巧
- 自媒体会否是独立游戏的出路?
- IOS 网络浅析-(三 NSURLConnection代理)
- FZU 1058 粗心的物理学家
- Qt之QLCDNumber
- maven环境变量设置
- 域名跳转301
- FZU 1061 矩阵连乘
- Android应用图标替换
- Qt之QLCDNumber
- 16. 3Sum Closest
- Spinner加载自定义Adapter
- Xcode快捷键大全
- c++插入运算符和输出运算符的重载
- jQuery学习笔记(2)-选择器的使用
- Android手机_软件安装目录
- FZU 1056 扫雷游戏
- FZU 1054 阅读顺序
- 我就是我(是时候安利自己一波了)
- 系统服务/ntsysv/chkconfig