public List<News> xmlParse(InputStream is){
List<News> newsList = null;
News news = null;
// 由android.util.Xml创建一个XmlPullParser实例
XmlPullParser parser = Xml.newPullParser();
// 设置输入流 并指明编码方式
try {
parser.setInput(is, "UTF-8");
// 产生第一个事件
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
// 判断当前事件是否为文档开始事件
case XmlPullParser.START_DOCUMENT:
newsList = new ArrayList<News>(); // 初始化books集合
break;
// 判断当前事件是否为标签元素开始事件
case XmlPullParser.START_TAG:
if (parser.getName().equals("item")) { // 判断开始标签元素是否是book
news = new News();
} else if (parser.getName().equals("link")) {
eventType = parser.next();
// 得到book标签的属性值,并设置book的id
news.setLink(parser.getText());
} else if (parser.getName().equals("imgs")) { // 判断开始标签元素是否是book
eventType = parser.next();
news.setImgs(parser.getText());
} else if (parser.getName().equals("description")) { // 判断开始标签元素是否是price
eventType = parser.next();
news.setDescription(parser.getText());
}else if (parser.getName().equals("copyright")) { // 判断开始标签元素是否是price
eventType = parser.next();
news.setCopyright(parser.getText());
}else if (parser.getName().equals("pubDate")) { // 判断开始标签元素是否是price
eventType = parser.next();
news.setPubData(parser.getText());
}else if (parser.getName().equals("comments")) { // 判断开始标签元素是否是price
eventType = parser.next();
news.setComments(parser.getText());
} else if (parser.getName().equals("title")) {
eventType = parser.next();
// 得到book标签的属性值,并设置book的id
news.setTitle(parser.getText());
}
break;
// 判断当前事件是否为标签元素结束事件
case XmlPullParser.END_TAG:
if (parser.getName().equals("item")) { // 判断结束标签元素是否是book
newsList.add(news); // 将book添加到books集合
news = null;
}
break;
}
// 进入下一个元素并触发相应事件
eventType = parser.next();
}
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return newsList;
}
pull解析
最新推荐文章于 2022-12-15 19:49:36 发布