XML解析(pull解析)
来源:互联网 发布:淘宝店铺排行榜怎么看 编辑:程序博客网 时间:2024/05/01 15:13
pull解析
封装实体类
public class User { private String id; private String uname; private String phone; private String mobil; private String addr; @Override public String toString() { return "User [id=" + id + ", uname=" + uname + ", phone=" + phone + ", mobil=" + mobil + ", addr=" + addr + ", email=" + email + "]"; } private String email; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getMobil() { return mobil; } public void setMobil(String mobil) { this.mobil = mobil; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }
解析
private void pullParseXml() { //1.通过Xml的newPullParser方法获取一个对象XmlPullParser XmlPullParser parser = Xml.newPullParser(); try { //2.设置要解析的文件 parser.setInput(getAssets().open("contacts.xml"), "utf-8"); boolean isNOTEOF = true;//没有到文件结尾 String tagname = "";//记录节点名称 //3.开始解析文档--返回值是五种事件类型 int event = parser.getEventType(); User u = null; //6.想办法把解析文档的代码循环起来 while(isNOTEOF){ //4.判断解析文档事件源属于哪一种事件类型 switch (event) { case XmlPullParser.START_DOCUMENT://文档开始 //初始化动作 userlist = new ArrayList<User>(); break; case XmlPullParser.START_TAG://节点开始 //获取节点名称 tagname = parser.getName(); if(tagname.equals("user")){ u = new User(); u.setId(parser.getAttributeValue(null, "id")); u.setUname(parser.getAttributeValue(null, "uname")); } break; case XmlPullParser.TEXT://文本内容 if(tagname.equals("phone")){ //取电话-文本内容 u.setPhone(parser.getText()); }else if(tagname.equals("mobil")){ u.setMobil(parser.getText()); }else if(tagname.equals("addr")){ u.setAddr(parser.getText()); }else if(tagname.equals("email")){ u.setEmail(parser.getText()); } break; case XmlPullParser.END_TAG://节点结束 tagname = parser.getName(); if(tagname.equals("user")){ userlist.add(u); } //在节点结束时,重新初始化节点名称(以防空节点内容覆盖正常节点文本内容) tagname = ""; break; case XmlPullParser.END_DOCUMENT://文档结束 //循环结束的标识,很关键,否则死循环 isNOTEOF = false; break; } //5.接着解析下一行(一定不能忘记,否则程序不会往下执行) event = parser.next(); } } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
0 0
- XML解析(pull解析)
- Xml解析(pull解析)
- Pull解析(xml解析)
- xml(pull)解析
- XML解析(三),PULL解析XML
- XML解析Pull解析
- XML解析---PULL解析
- Xml解析(SAX & Pull)
- xml解析(pull)httputils
- Android XML解析(PULL)
- Xml解析(pull解析)二
- xml解析(配置文件的pull解析)
- Android解析XML(DOM解析,SAX解析,PULL解析)
- xml解析之pull解析
- xml解析(使用pull解析)
- android Pull解析(XML解析)
- xml解析之pull解析
- Pull解析器解析XML
- iOS 给TextView添加placeholder.
- Object-C Category和Extension的区别
- HDU 5344 MZL's xor
- 为什么有时可以在头文件可以定义变量,有时不行(变量重定义)。
- Sql_mode
- XML解析(pull解析)
- Java 乱码处理方案
- 在升序排序的数组中插入一个元素
- Java中wait和sleep区别
- XML解析(SAX解析)
- $.fn.extend()和$.extend()
- 高并发解决办法
- 拖拽(一个刚体碰到另一个刚体产生另一个物体)
- Java中文乱码解决之道:Java是如何编码解码的