安卓中的XML解析
2016-06-27 07:54
447 查看
pull解析
public static List<Newslist> getList(String xmlStr) {// 解析XML文件的方法,返回Newslist对象的集合
List<Newslist> list = null;
try {
// XML解析器工厂实例
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// 获得解析器对象
XmlPullParser parser = factory.newPullParser();
Reader reader = new StringReader(xmlStr);// 读取字符串
parser.setInput(reader);// 解析器解析读取的数据
Newslist newslist = null;
int type = parser.getEventType();// 获得解析的状态
int i = 0;//判断解析的标签名的变量
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_DOCUMENT:// 文档开始
list = new ArrayList<Newslist>();// 创建集合
break;
case XmlPullParser.START_TAG:// 标签开始(标签里面如果有值,可以在这里面取)
String str = parser.getName();
if ("news".equals(str)) {
// 创建对象,并且给id属性赋值 拿到标签里面的第一个属性的值(标签里面的值)
newslist = new Newslist(Integer.parseInt(parser.getAttributeValue(0)));
}
if ("title".equals(str)) {
i = 1;
}
if ("timelength".equals(str)) {
i = 2;
}
break;
case XmlPullParser.TEXT:// 标签之间的文本(标签之间有值需要在这里取值)
if (i == 1) {
newslist.setTitle(parser.getText());
}
if (i == 2) {
newslist.setTimelength((Integer.parseInt(parser.getText())));
}
i=0;
break;
case XmlPullParser.END_TAG:// 标签结束
if ("news".equals(parser.getName())) {
list.add(newslist);// 添加到集合
}
break;
default:
break;
}
parser.next();// 进行下一个标签
type = parser.getEventType();
}
return list;// 返回集合
} catch (Exception e) {
e.printStackTrace();
}
return null;
public static List<Newslist> getList(String xmlStr) {// 解析XML文件的方法,返回Newslist对象的集合
List<Newslist> list = null;
try {
// XML解析器工厂实例
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// 获得解析器对象
XmlPullParser parser = factory.newPullParser();
Reader reader = new StringReader(xmlStr);// 读取字符串
parser.setInput(reader);// 解析器解析读取的数据
Newslist newslist = null;
int type = parser.getEventType();// 获得解析的状态
int i = 0;//判断解析的标签名的变量
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_DOCUMENT:// 文档开始
list = new ArrayList<Newslist>();// 创建集合
break;
case XmlPullParser.START_TAG:// 标签开始(标签里面如果有值,可以在这里面取)
String str = parser.getName();
if ("news".equals(str)) {
// 创建对象,并且给id属性赋值 拿到标签里面的第一个属性的值(标签里面的值)
newslist = new Newslist(Integer.parseInt(parser.getAttributeValue(0)));
}
if ("title".equals(str)) {
i = 1;
}
if ("timelength".equals(str)) {
i = 2;
}
break;
case XmlPullParser.TEXT:// 标签之间的文本(标签之间有值需要在这里取值)
if (i == 1) {
newslist.setTitle(parser.getText());
}
if (i == 2) {
newslist.setTimelength((Integer.parseInt(parser.getText())));
}
i=0;
break;
case XmlPullParser.END_TAG:// 标签结束
if ("news".equals(parser.getName())) {
list.add(newslist);// 添加到集合
}
break;
default:
break;
}
parser.next();// 进行下一个标签
type = parser.getEventType();
}
return list;// 返回集合
} catch (Exception e) {
e.printStackTrace();
}
return null;
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法