Android编程使用pull方式解析xml格式文件的方法详解
程序员文章站
2022-06-29 12:07:30
本文实例讲述了android编程使用pull方式解析xml格式文件的方法。分享给大家供大家参考,具体如下:
上次已经说过使用android sax解析xml,实际上还可以...
本文实例讲述了android编程使用pull方式解析xml格式文件的方法。分享给大家供大家参考,具体如下:
上次已经说过使用android sax解析xml,实际上还可以使用pull解析xml.这样的方式效率也是比较高的。pull不仅可以在android上使用也可以用在javaee里面,需要的就是pull的jar包。这次的xml也使用上次的那个,如下所示
<?xml version="1.0" encoding="utf-8"?> <persons> <person id="01"> <name>will</name> <age>21</age> </person> <person id="02"> <name>will2</name> <age>22</age> </person> </persons>
下面就来写一个解析xml的类,解析的流程如下
(1)取得pull解析器
(2)设置解析器的输入流
(3)产生第一个事件
(4)开始解析
(5)解析结束
package org.lxh.impl; import java.io.inputstream; import java.util.arraylist; import java.util.list; import org.lxh.vo.person; import org.xmlpull.v1.xmlpullparser; import org.xmlpull.v1.xmlpullparserexception; import android.util.log; import android.util.xml; public class parse2 { public list<person> getpersons(inputstream in) throws throwable{ person p=null; list<person> persons=null; xmlpullparser parser=xml.newpullparser(); parser.setinput(in, "utf-8"); int event=parser.geteventtype();//产生第一个事件 while(event!=xmlpullparser.end_document){ //如果不是文档结束事件 switch(event){ case xmlpullparser.start_document: persons=new arraylist<person>(); //在文档的开始实例化集合 break; case xmlpullparser.start_tag: string name=parser.getname();//取得当前解析器指向的元素名称 if("person".equals(name)){ p=new person(); p.setid(parser.getattributevalue(0)); } if(p!=null){ if("name".equals(name)){ p.setname(parser.nexttext()); //取得当前解析器指向的下一个元素的文本节点 } if("age".equals(name)){ p.setage(integer.parseint(parser.nexttext())); } } break; case xmlpullparser.end_tag: if("person".equals(parser.getname())){ //person标签结束就把数据存入集合 persons.add(p); //p=null; } break; } event=parser.next(); } return persons; } }
这样的解析比起sax应该比较简单了,单元测试也用昨天那个只是少做了修改。下面看一下效果截图
ps:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:
在线xml/json互相转换工具:
在线格式化xml/在线压缩xml:
xml在线压缩/格式化工具:
xml代码在线格式化美化工具:
更多关于android相关内容感兴趣的读者可查看本站专题:《android操作xml数据技巧总结》、《android编程之activity操作技巧总结》、《android资源操作技巧汇总》、《android文件操作技巧汇总》、《android开发入门与进阶教程》、《android视图view技巧总结》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。
下一篇: Android实现加载状态视图切换效果