加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

采用pull解析xml文件

发布时间:2020-12-16 09:19:28 所属栏目:百科 来源:网络整理
导读:如何解析xml文件呢? 以天气信息为例,信息以IO流的形式传输。 步骤: 1.获取xml文件的pull解析器 2.指定要解析的xml文件(传入的输入流),编码方式 3.当没到文档结尾,就一直循环,获取对应标签的信息,存入javabean中 public static ListWeatherInfo getWe
如何解析xml文件呢?

以天气信息为例,信息以IO流的形式传输。

步骤:

1.获取xml文件的pull解析器

2.指定要解析的xml文件(传入的输入流),编码方式

3.当没到文档结尾,就一直循环,获取对应标签的信息,存入javabean中

	public static List<WeatherInfo> getWeatherInfos(InputStream is) throws Exception{
		XmlPullParser parser = Xml.newPullParser();
		//初始化解析器
		parser.setInput(is,"utf-8");
		List<WeatherInfo> weatherInfos = null;
		WeatherInfo weatherInfo = null;
		int type = parser.getEventType();
		while (type!=XmlPullParser.END_DOCUMENT) {
			switch (type) {
			case XmlPullParser.START_TAG:
				if("infos".equals(parser.getName())){
					//解析到全局开始的标签
					weatherInfos = new ArrayList<WeatherInfo>();
				}else if("city".equals(parser.getName())){
					weatherInfo = new WeatherInfo();
					String idStr = parser.getAttributeValue(0);
					weatherInfo.setId(Integer.parseInt(idStr));
				}else if("temp".equals(parser.getName())){
					String temp = parser.nextText();
					weatherInfo.setTemp(temp);
				}else if("weather".equals(parser.getName())){
					String weather = parser.nextText();
					weatherInfo.setWeather(weather);
				}else if("wind".equals(parser.getName())){
					String wind = parser.nextText();
					weatherInfo.setWind(wind);
				}else if("name".equals(parser.getName())){
					String name = parser.nextText();
					weatherInfo.setName(name);
				}else if("pm".equals(parser.getName())){
					String pm = parser.nextText();
					weatherInfo.setPm(pm);
				}
				break;

			case XmlPullParser.END_TAG:
				if("city".equals(parser.getName())){
					weatherInfos.add(weatherInfo);
					weatherInfo = null;
				}
				break;
			}
			
			type = parser.next();
		}
		return weatherInfos;
	}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读