您的位置:首页 > 数据库

天气预报XML格式城市信息解析

2016-06-06 09:28 302 查看
在写天气预报简单程序时,对XML格式的城市数据进行解析,存储在已经建立的数据库中,以下为简单解析方法:

/**
* 解析网络返回的XML数据
* @param response  网络返回数据字符串
* @param happinessWeatherDB    数据库实例对象
* @return  如果response不为空,解析完成并存储在数据库,返回true;如果response为空,不进行解析,返回false
*/
public synchronized static boolean ParseXML(String response, HappinessWeatherDB happinessWeatherDB) {
try {
if (!TextUtils.isEmpty(response)){

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser = factory.newPullParser();
xmlPullParser.setInput(new StringReader(response));
int eventType = xmlPullParser.getEventType();

City city=new City();

while (eventType != xmlPullParser.END_DOCUMENT) {
String str = xmlPullParser.getName();
switch (eventType) {
case XmlPullParser.START_TAG: {
if ("weaid".equals(xmlPullParser.getName())) {
int id = Integer.parseInt(xmlPullParser.nextText());
city.setWeather_id(id);
} else
if ("citynm".equals(xmlPullParser.getName())) {
String name = xmlPullParser.nextText();
city.setCityName(name);
} else if ("cityid".equals(xmlPullParser.getName())) {
String code = xmlPullParser.nextText();
city.setCity_Code(code);
}
break;
}
case XmlPullParser.END_TAG: {
// 将解析出来的数据存储到City表
if(str.startsWith("item_")) {
happinessWeatherDB.saveCity(city);
}
break;
}
default:
break;
}
eventType = xmlPullParser.next();
}
return true;
}
}
catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息