zoukankan      html  css  js  c++  java
  • 安卓使用pull解析器解析XML文件

    学习一下:

     1 public class MainActivity extends Activity {
     2 
     3     List<City> cityList;
     4     @Override
     5     protected void onCreate(Bundle savedInstanceState) {
     6         super.onCreate(savedInstanceState);
     7         setContentView(R.layout.activity_main);
     8     }
     9 
    10     public void click(View v){
    11         //获取到src文件夹下的资源文件
    12         InputStream is = getClassLoader().getResourceAsStream("weather.xml");
    13         
    14         //拿到pull解析器对象
    15         XmlPullParser xp = Xml.newPullParser();
    16         //初始化
    17         try {
    18             xp.setInput(is, "gbk");
    19             
    20             //获取当前节点的事件类型,通过事件类型的判断,我们可以知道当前节点是什么节点,从而确定我们应该做什么操作
    21             int type = xp.getEventType();
    22             City city = null;
    23             while(type != XmlPullParser.END_DOCUMENT){
    24                 //根据节点的类型,要做不同的操作
    25                 switch (type) {
    26                 case XmlPullParser.START_TAG:
    27                     //                    获取当前节点的名字
    28                     if("weather".equals(xp.getName())){
    29                         //创建city集合对象,用于存放city的javabean
    30                         cityList = new ArrayList<City>();
    31                     }
    32                     else if("city".equals(xp.getName())){
    33                         //创建city的javabean对象
    34                         city = new City();
    35                     }
    36                     else if("name".equals(xp.getName())){
    37                         //                获取当前节点的下一个节点的文本
    38                         String name = xp.nextText();
    39                         city.setName(name);
    40                     }
    41                     else if("temp".equals(xp.getName())){
    42                         //                获取当前节点的下一个节点的文本
    43                         String temp = xp.nextText();
    44                         city.setTemp(temp);
    45                     }
    46                     else if("pm".equals(xp.getName())){
    47                         //                获取当前节点的下一个节点的文本
    48                         String pm = xp.nextText();
    49                         city.setPm(pm);
    50                     }
    51                     break;
    52                 case XmlPullParser.END_TAG:
    53                     if("city".equals(xp.getName())){
    54                         //把city的javabean放入集合中
    55                         cityList.add(city);
    56                     }
    57                     break;
    58 
    59                 }
    60                 
    61                 //把指针移动到下一个节点,并返回该节点的事件类型
    62                 type = xp.next();
    63             }
    64             
    65             for (City c : cityList) {
    66                 System.out.println(c.toString());
    67             }
    68         } catch (Exception e) {
    69             // TODO Auto-generated catch block
    70             e.printStackTrace();
    71         }
    72     }
    73 
    74 }
    Main.java
  • 相关阅读:
    linux杂记
    mysql 备份命令
    查看mysql 套接字文件 mysql.sock
    处理下载是文件名乱码正确姿势
    对象创建完成后进行数据同步
    python——数据库编程
    python——网络编程2
    python——网络编程
    python——12、面向对象
    pythoning——11、正则匹配
  • 原文地址:https://www.cnblogs.com/reader/p/5103869.html
Copyright © 2011-2022 走看看