一.主要实现
1.利用android api XmlPullParser实现xml文件解析
二.关键代码
public void pullxml(View v){
//获取资源文件并转化为输入流
try {
InputStream is=ClassLoader.getSystemResourceAsStream("hey.xml");
//获取xml解析器对象
XmlPullParser xmlPullParser= Xml.newPullParser();
//获取输入流,并设置编码格式
xmlPullParser.setInput(is,"utf-8");
//获取节点类型
int type=xmlPullParser.getEventType();
while (type!= XmlPullParser.END_DOCUMENT){//如果文件不是结束符号的话
switch (type){
case XmlPullParser.START_TAG :
if(xmlPullParser.getName().equals("weather")){
cityList=new ArrayList<>();
}
else if(xmlPullParser.getName().equals("city")){
city=new City();
}
else if(xmlPullParser.getName().equals("name")){
city.setName(xmlPullParser.nextText());
}
else if(xmlPullParser.getName().equals("temperature")){
city.setTemperature(xmlPullParser.nextText());
}
else if(xmlPullParser.getName().equals("pm25")){
city.setPm25(xmlPullParser.nextText());
}
else if(xmlPullParser.getName().equals("forecast")){
city.setForecast(xmlPullParser.nextText());
}
break;
case XmlPullParser.END_TAG :
if(xmlPullParser.getName().equals("city"))
cityList.add(city);
break;
}
type=xmlPullParser.next();
}
for (City cit:cityList) {
System.out.print(cit.toString());
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
三.主要方法介绍