Pull解析例子
来源:互联网 发布:上海晓通网络 编辑:程序博客网 时间:2024/05/22 05:09
类:
public class WeatherInfo {
private String id;
private String wind;
private String pm;
private String temp;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getWind() {
return wind;
}
public void setWind(String wind) {
this.wind = wind;
}
public String getPm() {
return pm;
}
public void setPm(String pm) {
this.pm = pm;
}
public String getTemp() {
return temp;
}
public void setTemp(String temp) {
this.temp = temp;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
解析器:
public class Parser {
public static WeatherInfo getPullParser(InputStream is) {
// 读取xml文件时,实例化pullparser
XmlPullParser parser = Xml.newPullParser();
// 实体类,搞出来
WeatherInfo weatherinfo = null;
try {
// 初始化parser
parser.setInput(is, "utf-8");
// 获取事件的类型
int type = parser.getEventType();
// 如果指针不指向文本的结尾,就循环
while (type != XmlPullParser.END_DOCUMENT) {
// 如果类型是开始节点,做一个判断了
if (type == XmlPullParser.START_TAG) {
// 事件的名称如果和我想要的这个节点名一样。
// 把里面的内容解析出来
// 解析到了weather节点下。
if ("weather".equals(parser.getName())) {
// 初始化实体类
weatherinfo = new WeatherInfo();
// 如果解析到city节点下
} else if ("city".equals(parser.getName())) {
// 获取节点下的属性
String id = parser.getAttributeValue(0);
// 用实体类把值添加进去
weatherinfo.setId(id);
// 如果解析到name节点
} else if ("name".equals(parser.getName())) {
// 获取name节点下一个文本
String name = parser.nextText();
// 把获取到的内容添加到实体类中
weatherinfo.setName(name);
} else if ("pm".equals(parser.getName())) {
String pm = parser.nextText();
weatherinfo.setPm(pm);
} else if ("wind".equals(parser.getName())) {
String wind = parser.nextText();
weatherinfo.setWind(wind);
} else if ("temp".equals(parser.getName())) {
String temp = parser.nextText();
weatherinfo.setTemp(temp);
}
}
type = parser.next();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
return weatherinfo;
}
}
xml文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<weather>
<city id="1">
<name>北京</name>
<pm>1000000</pm>
<wind>8</wind>
<temp>14-21</temp>
</city>
</weather>
方法调用:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// 解析文件的点击事件
public void parse(View v) {
//通过类加载器的方式,获取到输入流
InputStream is = MainActivity.class.getClassLoader().getResourceAsStream("weathers.xml");
//实例化出天气信息
WeatherInfo weatherInfo =Parser.getPullParser(is);
//打印出天气信息
Toast.makeText(this,
"城市ID:" + weatherInfo.getId() + "城市PM" + weatherInfo.getPm(), 1)
.show();
}
}
- Pull解析例子
- pull解析
- pull解析
- pull解析
- Pull 解析
- pull解析
- pull解析
- Pull解析
- pull解析
- PULL解析
- pull解析
- Pull解析
- Pull解析
- Pull解析
- PULL解析
- pull解析
- pull解析
- PULL解析
- 解决IIS7.0部署文件在 windows 2008 R2 64位C盘中无法注册问题
- 一个只能读26个英文单词的android学习之路(一)
- Robot之Variable table部分
- 奇异值分解(SVD)
- Linux下的硬件驱动——USB设备(上)(驱动配置部分)
- Pull解析例子
- Maven(二):入门项目
- 为什么使用jquery 的submit()方法不能提交表单?
- background-size:cover背景重复解决办法
- popupwindow放置listview,并且使listview可以响应点击事件
- 智能电视游戏品牌峰会顺利召开,多款精品TV游戏发布
- 统计分析 (sql)
- html前端优化
- C学习之语言初涉(1)指针篇