• pullparse解析基础(1)


    一: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         }
  • 相关阅读:
    技术管理之路三、团队建设:怎么带队伍?
    技术管理之路五、管理沟通:管理的必修课!
    职场工作方法论:计划安排,时间管理的“四象限法则”
    职场工作方法论:目标管理SMART原则
    激励方法论1、马斯洛需求模型
    mybatis PageHelper 分页组件优化
    async 和 await
    spring cloud 负载均衡 平滑上下线
    vue 重新渲染组件
    spring cloud 超时整理
  • 原文地址:https://www.cnblogs.com/solar-sys/p/5962852.html
Copyright © 2020-2023  润新知