public class ChannelServiceImpl {
public static List<Channel> getAllWeather(InputStream is){
List<Channel> cs = null;
Channel c = null;
try {
// 创建解析器
XmlPullParser parser = Xml.newPullParser();
// 设置解析器要解析哪个文件及使用的编码
parser.setInput(is, "UTF-8");
//得到当前节点标识(START_TAG, END_TAG, TEXT, etc.)
int type = parser.getEventType();
// 没有解析到结尾就一直解析
while(type!=XmlPullParser.END_DOCUMENT){
//如果标识为开始
if(type==XmlPullParser.START_TAG){
//是weather的话,创建list,以便保存各个城市天气信息
if("weather".equals(parser.getName())){
cs = new ArrayList<Channel>();
}else if("channel".equals(parser.getName())){
c = new Channel();
c.setId(parser.getAttributeValue(0));
}else if("city".equals(parser.getName())){
String city = parser.nextText();
c.setCity(city);
}else if("temp".equals(parser.getName())){
String temp = parser.nextText();
c.setTemp(temp);
}else if("wind".equals(parser.getName())){
String wind = parser.getName();
c.setWind(wind);
}else if("pm250".equals(parser.getName())){
String pm250 = parser.getName();
c.setPm250(pm250);
}
}
else if(type==XmlPullParser.END_TAG){
if("channel".equals(parser.getName())) {
cs.add(c);
//将c保存的当前城市信息添加到list,并清空c中信息,以便后用
System.out.println(c.toString());
c = null;
}
}
//得到下次event类型,再由while循环判断是否到XML文件结尾的END_DOCUMENT
type = parser.next();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return cs;
}
}
解析Xml——XmlPullParser
最新推荐文章于 2023-05-14 20:43:43 发布