从头学android_Pull解析器解析xml文件
来源:互联网 发布:java 调用vbs 编辑:程序博客网 时间:2024/06/17 12:32
解析xml
在android中解析xml有三种方式,dom,sax,pull,其中dom是JavaSE内置的直接就可以解析,但是会将整个文档全部加载进入内存,对资源耗费比较大,sax的解析和JavaWeb中的原理方式也都相同,是一行一行的加载,另外android中提供了google建议使用的pull解析器,这种方式跟sax大致相同。
代码
//加载xml InputStream inputStream = null; try { //加载xml inputStream = new FileInputStream(new File(getFilesDir(), "xmlSerializer.xml")); //获取pull解析器 XmlPullParser parser = Xml.newPullParser(); //初始化pull解析器 parser.setInput(inputStream, "utf-8"); //获取当前结点事件 int evenType = parser.getEventType(); ArrayList<Message> messages = null; Message msg = null; while (evenType != XmlPullParser.END_DOCUMENT) { //判断结点 switch (evenType) { case XmlPullParser.START_TAG: { if ("messages".equalsIgnoreCase(parser.getName()))//是<messages>结点 { messages = new ArrayList(); } else if ("msg".equalsIgnoreCase(parser.getName())) {//是<msg>结点 msg = new Message(); } else if ("body".equalsIgnoreCase(parser.getName())) { if (msg != null) { msg.setBody(parser.nextText()); } } else if ("date".equalsIgnoreCase(parser.getName())) { if (msg!=null){ msg.setDate(Long.parseLong(parser.nextText())); } } else if ("address".equalsIgnoreCase(parser.getName())) { if (msg!=null){ msg.setAddress(parser.nextText()); } } else if ("type".equalsIgnoreCase(parser.getName())) { if (msg!=null){ msg.setType(Integer.parseInt(parser.nextText())); } } break; } case XmlPullParser.END_TAG: { if ("msg".equalsIgnoreCase(parser.getName())){ messages.add(msg); msg = null; } break; } } evenType = parser.next(); } for(Message message : messages){ Log.i(TAG,message.toString()); } } catch (Exception e) { e.printStackTrace(); } finally {//关闭资源 if (inputStream!=null){ try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } }
0 0
- 从头学android_Pull解析器解析xml文件
- android_Pull解析xml
- android_pull解析
- 学习用pull解析解析xml文件
- 菜鸟学DOM解析XML文件
- 解析一个XML文件: XML解析器
- 从头学android_创建xml文件
- 利用sax解析器解析xml文件
- 利用pull解析器解析xml文件
- 通过Pull解析器解析xml文件
- 用PULL解析器解析XML文件
- pull解析器解析xml文件
- 用PULL解析器解析XML文件
- Pull解析器解析XML文件
- pull解析器解析 生成 xml文件
- 使用dom4j解析器解析xml文件
- Pull解析器解析XML文件和生成XML文件
- XML文件解析器TXml
- 解决Vs输出中文乱码的问题
- 获取当前ip
- HTTP 协议简介
- QT生成的exe文件在别的电脑上运行
- 按钮样式的文件选择框
- 从头学android_Pull解析器解析xml文件
- SQL 我不知道的Tips
- 各种引擎
- PLSQL数组
- 10分钟教你学会三级缓存
- VLC音频重采样Audio resample核心流程梳理
- android studio快捷键
- Hadoop的InputFormats和OutputFormats
- 静态代理,动态代理---笔记