pullparse解析基础
Posted 天殇黑侠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pullparse解析基础相关的知识,希望对你有一定的参考价值。
一:assert中的xml文件
1 <?xml version="1.0" encoding="gbk"?> 2 <smartresult> 3 <product type="mobile"> 4 <phonenum>13512345678</phonenum> 5 <location>北京移动神州行卡</location> 6 <phoneJx>有得有失,华而不实,须防劫财,始保平安 吉带凶</phoneJx> 7 </product> 8 </smartresult>
二:domain中放入javabean数据
1 public class Product { 2 private String type; 3 private String phonenum; 4 private String location; 5 private String phoneJx; 6 public String getType() { 7 return type; 8 } 9 public void setType(String type) { 10 this.type = type; 11 } 12 public String getPhonenum() { 13 return phonenum; 14 } 15 public void setPhonenum(String phonenum) { 16 this.phonenum = phonenum; 17 } 18 public String getLocation() { 19 return location; 20 } 21 public void setLocation(String location) { 22 this.location = location; 23 } 24 public String getPhoneJx() { 25 return phoneJx; 26 } 27 public void setPhoneJx(String phoneJx) { 28 this.phoneJx = phoneJx; 29 } 30 @Override 31 public String toString() { 32 return "Product [type=" + type + ", phonenum=" + phonenum 33 + ", location=" + location + ", phoneJx=" + phoneJx + "]"; 34 } 35 36 }
三:解析
1 //拿到pull解析器 2 XmlPullParser pullParser = Xml.newPullParser(); 3 try { 4 //传入xml目标源文件 5 //inputStream,需要一个流,第二个参数inputEncoding编码和xml文件中编码一致 6 InputStream in = getAssets().open("result.xml"); 7 pullParser.setInput(in, "gbk"); 8 //拿到事件类型 9 int eventType = pullParser.getEventType(); 10 //通过循环判断事件类型 11 //pullParser.END_DOCUMENT:The static field XmlPullParser.END_DOCUMENT should be accessed in a static way 12 Product p=null; 13 while(eventType!=XmlPullParser.END_DOCUMENT){ 14 if(eventType==XmlPullParser.START_TAG){ 15 //判断是否是元素的开始 , 只要是某个元素的开始位置, 那么就会进入这里 ,不考虑结束标签和结束文档 16 //获得 当前解析到的元素的名称 17 if("product".equals(pullParser.getName())){ 18 //准备 product 类的一个实例 , 去 封装数据 19 p = new Product(); 20 //获得第一个属性的值getAttributeValue(); 21 //通过索引号的方式,索引从0 开始 22 String value = pullParser.getAttributeValue(0); 23 //设置给p的类型 24 p.setType(value); 25 }else if("phonenum".equals(pullParser.getName())){ 26 // <phonenum>13512345678</phonenum> 27 //pullParser.nextText直接获得标签后的文本 28 String phonenum = pullParser.nextText(); 29 p.setPhonenum(phonenum); 30 }else if("location".equals(pullParser.getName())){ 31 String location = pullParser.nextText(); 32 p.setLocation(location); 33 }else if("phoneJx".equals(pullParser.getName())){ 34 String phoneJx = pullParser.nextText(); 35 pullParser.getText(); 36 p.setPhoneJx(phoneJx); 37 } 38 } 39 40 //手动移动“指针” 41 eventType = pullParser.next(); 42 43 } 44 45 if(p!=null){ 46 System.out.println(p.toString()); 47 } 48 49 } catch (Exception e) { 50 // TODO Auto-generated catch block 51 e.printStackTrace(); 52 }
以上是关于pullparse解析基础的主要内容,如果未能解决你的问题,请参考以下文章