• xml解析案例


    步骤:Channel是java bean类 

    public static List<Channel> parsexml(InputStream inputStream) {//注意服务器种是以流的形式返回数据的。

      //0声明集合对象和java bean对象

      List<Channel>weatherList = null;

      Channel channel = null;

      //1获取XmlPullParser 解析的实例

      XmlPullParser parser = Xml.newPullParser();

      try {

      //2设置XmlPullParser 的参数

      parser.setInput(inputStream,"utf-8");

      //3获取事件类型

      int eventType = parser.getEventType();

      //4循环解析并存储  

      while(eventType!=XmlPullParser.END_DOCUMENT){

      switch (eventType) {

      case XmlPullParser.START_TAG://解析开始的标签

      //5具体判断解析到哪一个标签

      if ("weather".equals(parser.getName())) {

      //6实例化一个集合对象

      weatherList = new ArrayList<>();

      } else if ("channel".equals(parser.getName())) {

      //7實例化一个java bean对象

      channel = new Channel();

      //8获取id值并且保存

      String id = parser.getAttributeValue(0);

      channel.setId(id);

      } else if ("city".equals(parser.getName())) {

      //9获取city值并且保存

      try {

      String city = parser.nextText();

      channel.setCity(city);

      } catch (IOException e) {

      e.printStackTrace();

      }

      }else if ("temp".equals(parser.getName())) {

      //10获取city值并且保存

      try {

      String temp = parser.nextText();

      channel.setTemp(temp);

      } catch (IOException e) {

      e.printStackTrace();

      }

      }else if ("wind".equals(parser.getName())) {

      //11获取city值并且保存

      try {

      String wind = parser.nextText();

      channel.setWind(wind);

      } catch (IOException e) {

      e.printStackTrace();

      }

      }else if ("pm250".equals(parser.getName())) {

      //12获取city值并且保存

      try {

      String pm250 = parser.nextText();

      channel.setPm250(pm250);

      } catch (IOException e) {

      e.printStackTrace();

      }

      }

      break;

      case XmlPullParser.END_TAG://结束标签

      if ("channel".equals(parser.getName())) {

      //把javabean对象存到集合中

      weatherList.add(channel);

    }

      break;

    }

      //不停的向下解析

      try {

      eventType = parser.next();

      } catch (IOException e) {

      e.printStackTrace();

    }

    }

    } catch (XmlPullParserException e) {

    e.printStackTrace();

    }

          return weatherList;

    }

  • 相关阅读:
    使用Vue做个简单的评论 + localstorage存储
    使用Vue自定义组件时,报did you register the component correctly? For recursive components, make sure to provide the "name" option.(未注册组件)的原因之一
    自定义Vue组件
    HBuilder X 中使用模拟器进行App开发
    使用ajax上传图片,并且使用canvas实现出上传进度效果
    js 实现图片预览的两种方式
    破解百度云下载速度限制的方法
    图形开发语言 工具
    EC20的低功耗模式
    STM32单片机的软件重启和远程重启
  • 原文地址:https://www.cnblogs.com/blue-crystal/p/7582177.html
Copyright © 2020-2023  润新知