zoukankan      html  css  js  c++  java
  • Android开发之XML的创建和解析

    参考:http://blog.csdn.net/pi9nc/article/details/9320413

    XML文件的解析,代码:

     1 public void click(View v) {
     2   InputStream is = getClassLoader().getResourceAsStream("weather.xml");
     3   //获取到XMLPullParse接口的对象
     4   XmlPullParser xpp = Xml.newPullParser();
     5   try {
     6    //设置输出流及编码
     7    xpp.setInput(is, "utf-8");
     8    //获取到节点的类型,START_DOCUMENT=0,END_DOCUMENT=1,START_TAG=2,END_TAG=3,TEXT=4
     9    int type = xpp.getEventType();
    10    CityBean city = null;
    11    //当前节点不是END_DOCUMENT的话,就一直循环遍历XML文件
    12    while (type!=XmlPullParser.END_DOCUMENT) {
    13     //使用switch判断type类型
    14     switch (type) {
    15     //type为2的情况下,进入START_TAG
    16     case XmlPullParser.START_TAG:
    17      //获取当前节点的名字是weather
    18      if ("weather".equals(xpp.getName())) {
    19       //city的集合
    20       cityList=new ArrayList<>();
    21      }else if ("city".equals(xpp.getName())) {
    22       city = new CityBean();
    23      }else if ("name".equals(xpp.getName())) {
    24       String name = xpp.nextText();
    25       city.setName(name);
    26      }else if ("temp".equals(xpp.getName())) {
    27       String temp = xpp.nextText();
    28       city.setTemp(temp);
    29      }else if ("pm".equals(xpp.getName())) {
    30       String pm = xpp.nextText();
    31       city.setPm(pm);
    32      }
    33      break;
    34     case XmlPullParser.END_TAG:
    35      if ("city".equals(xpp.getName())) {
    36       cityList.add(city);
    37      }
    38      break;
    39     default:
    40      break;
    41     }
    42     //把解析的指针移动到下一个节点
    43     type=xpp.next();
    44    }
    45    for (CityBean c1 : cityList) {
    46     System.out.println(c1.toString());
    47    }
    48   } catch (Exception e) {
    49    e.printStackTrace();
    50   }    
    51  }

    XML文件的创建,代码:

     1 File file = new File(Environment.getExternalStorageDirectory(),"info3.xml");
     2    XmlSerializer xml = Xml.newSerializer();
     3    try {
     4     FileOutputStream fos = new FileOutputStream(file);
     5     xml.setOutput(fos, "utf-8");
     6     xml.startDocument("utf-8", true);
     7     xml.startTag(null, "message");
     8     for (SmsBean smsBean : smsList) {
     9      xml.startTag(null, "sms");
    10      xml.startTag(null, "body");
    11      xml.text(smsBean.getBody());
    12      xml.endTag(null, "body");
    13      xml.startTag(null, "address");
    14      xml.text(smsBean.getAddress());
    15      xml.endTag(null, "address");
    16      xml.startTag(null, "date");
    17      xml.text(smsBean.getDate());
    18      xml.endTag(null, "date");
    19      xml.startTag(null, "type");
    20      xml.text(smsBean.getType());
    21      xml.endTag(null, "type");
    22      xml.endTag(null, "sms");
    23     }
    24     xml.endTag(null, "message");
    25     xml.endDocument();
    26     fos.close();
    27    } catch (Exception e) {
    28 
    29     e.printStackTrace();
    30 }
  • 相关阅读:
    【DWT笔记】基于小波变换的降噪技术
    【DWT笔记】傅里叶变换与小波变换
    Matlab命令——目录操作(windows&Linux)
    【DCT笔记】DCT变换、DCT反变换、分块DCT变换
    JSOI2018 防御网络
    NOI2018 屠龙勇士
    CRT&EXCRT学习笔记
    CF662C Binary Table
    HNOI2017 礼物
    ZJOI2014 力
  • 原文地址:https://www.cnblogs.com/liyiran/p/5315795.html
Copyright © 2011-2022 走看看