步骤: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;

}

xml解析案例的更多相关文章

  1. 用DOM4J解析XML文件案例

    用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:

  2. JSON解析和XML解析对比

    JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大.本文系统的分析两种解析方式的区别,为更好地处理数据作准备.由于目前阶段主要是做移动开发,所以本文所描述的JSON解析和 ...

  3. JavaEE:XML解析

    XML解析技术概述1.XML 技术主要企业应用1)存储和传输数据 2)作为框架的配置文件2.使用xml 存储和传输数据涉及到以下两点1)通过程序生成xml2)读取xml 中数据 ---- xml 解析 ...

  4. 深入解读XML解析

    一.XML是什么?有什么用? XML是指.作为配置文件存在 二.XML的基本语法 1.文档声明:很重要 在编写XML文档时,需要先使用文档声明来声明XML文档.且必须出现在文档的第一行. 作用:告知解 ...

  5. Java基础-处理json字符串解析案例

    Java基础-处理json字符串解析案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 作为一名开发人员,想必大家或多或少都有接触到XML文件,XML全称为“extensible ...

  6. 5月3日上课笔记-XML解析

    一.XML编程 1.xml编程的两种解析方式 1.1 dom解析 优点:一次加载,多次使用.可以方便的对xml文档进行增删改查 缺点:如果xml文档过大的话,加载的时候会比较占用内存空间比较大,消耗资 ...

  7. pull解析案例

    此pull解析案例是eclipes的对不对,不知道, private void getXml() { try { InputStream is = getAssets().open("new ...

  8. - XML 解析 总结 DOM SAX PULL MD

    目录 目录 XML 解析 总结 DOM SAX PULL MD 几种解析方式简介 要解析的内容 DOM 解析 代码 输出 SAX 解析 代码 输出 JDOM 解析 代码 输出 DOM4J 解析 代码 ...

  9. xml解析技术

    本文总结Dom,sax解析,  使用Java作为工具解析xml文档. 1 Dom 综述:Dom解析xml通常也称为xmlDom (和htmlDom技术差不多),将xml文档封装成树,好处就是xml中的 ...

随机推荐

  1. js获得时间new Date()整理

    Date对象取得年份有两种方法:getFullYear()和getYear() 经测试var dt = new Date(); //alert(new Date())弹出:Thu Aug 24 201 ...

  2. css中滚动条样式的设置

    参数说明: 1.overflow-y : 设置当对象的内容超过其指定高度时如何管理内容:overflow-x : 设置当对象的内容超过其指定宽度时如何管理内容. 参数: visible:扩大面积以显示 ...

  3. 《Java从入门到放弃》JavaSE篇:综合练习——单身狗租赁系统(数组版)

    因为现在只学习了基本语法,所以在综合练习之前,先补充关于方法概念. 方法的作用:把一系列的代码放在一起,然后再取个别名.之后通过这个别名的调用,就相当于执行了这一系列的代码. 方法的语法:([]中的内 ...

  4. js排序与重组

    前几天同学发给我一个问题,思路想整理一下,也供大家参考.实际上这道题本质就是考察的是去重与排序的问题.好了闲话少说,上题. function input(req){     if(req<=10 ...

  5. 使用Dev中的GridView进行数据增删操作

      使用OracleHelper(一个C#操作Oracle数据库的工具类),连接的打开关闭全部交给OracleHelper去做. 进行增加数据信息时,新开增加数据信息的窗口,并且接受窗口的返回值,如果 ...

  6. Json简介1

    使用Notepad++编程: <!DOCTYPE html><html><head><meta charset="UTF-8">&l ...

  7. 我理解的Java中重载与重写

    程序中我们用方法来实现对对象的操作,但是对象可能有不同的数据类型,这时候对不同的数据类型,进行相同的操作,我们就可以用到方法的重载,即方法名相同,但是具有不同的参数列表. 方法的重载可以根据传递参数的 ...

  8. oracle字段由中文前缀加数字,数字自动增长的实现

    table中有一个字段,id,它是由Yunsha_000001的规则组成的. 每当插入一条数据的时候,自动生成的id是自动增加的,如何实现数字部分的自动增长? select  'Yunsha_'||l ...

  9. java多线程sleep和wait方法的区别

    分别创建了三个类,一个测试类,两个线程类实现Runnable接口. 当有notify()唤醒线程时,执行的结果如下: 当把TestSleepaWait.class.notify();语句注释后,即没有 ...

  10. base64随机字符混淆加密、解密-美拍视频地址解密,反推加密算法

    用火车头测试采集美拍的数据时无意中发现美拍的视频地址是一段加了混淆字符串的base64代码.如下图 于是好奇之下研究了下解密算法.具体过程省略800字.发现美拍的视频解密是通过js完成,于是找到了具体 ...