1,使用注意事项:
【1】创造对应的JavaBean

【2】写出对应的成员变量直接生成set ,get 方法

【2】解析
package com.itheima.newsclient;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.util.Xml;
public class NewsXmlUtils {
// 解析xml 把解析的数据封装到集合
public static List<News> parserXml(InputStream in) {
List<News> lists = null;
News news = null;
try {
// [1]获取xmlpullparser解析器的实例
XmlPullParser parser = Xml.newPullParser();
// [2]设置要解析的xml文件
parser.setInput(in, "utf-8");
// [3]获取要解析的事件类型
int eventType = parser.getEventType();
// [4]把xml所有的数据都解析出来
while (eventType != XmlPullParser.END_DOCUMENT) {
// [5]具体判断一下到底解析的是开始标签还是结束标签
switch (eventType) {
case XmlPullParser.START_TAG: //代表解析的是所有开始标签
//[5.1]具体判断一下到底解析的是哪个开始标签
if ("channel".equals(parser.getName())) {
//[5.2]解析到这个标签 创建一个集合对象
lists = new ArrayList<News>();
}else if("item".equals(parser.getName())){
//[5.3]创建bean对象
news = new News();
}else if("title".equals(parser.getName())){
//[5.4]把title标签对应的内容解析出来存到bean里
news.setTitle(parser.nextText());
}else if("description".equals(parser.getName())){
//[5.5]把description标签对应的内容解析出来存到bean里
news.setDescription(parser.nextText());
}else if("image".equals(parser.getName())){
//[5.6]把image 标签对应的内容解析出来存到bean里
news.setImagepath(parser.nextText());
}else if("type".equals(parser.getName())){
//[5.7]把type 标签对应的内容解析出来存到bean里
news.setType(parser.nextText());
}else if("comment".equals(parser.getName())){
//[5.8]把comment 标签对应的内容解析出来存到bean里
news.setComment(parser.nextText());
}
break;
case XmlPullParser.END_TAG: //代表解析的是结束标签
if ("item".equals(parser.getName())) {
//把bean加入到集合
lists.add(news);
}
break;
}
// [6]不停的解析
eventType = parser.next();
}
return lists;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
本文详细介绍了一种使用XMLPullParser解析XML新闻数据的方法,通过创建News类的JavaBean,解析XML中的title、description、image等标签,并将数据封装到News对象中,最后存储到List集合。该方法适用于Android平台的新闻客户端开发。

3917

被折叠的 条评论
为什么被折叠?



