使用XStream解析xml数据,需要在项目工程libs中导入jar包
-------------------------封装JavaBean-----------------------------------
-------------Oschina---------------
@XStreamAlias("oschina")
public class Oschina {
public int catalog;
public int newsCount;
public int pagesize;
public NewsList newslist;
}
-------------NewsList---------------
public class NewsList {
@XStreamImplicit(itemFieldName = "news")
public List<News> news;
}
-------------News---------------
public class News {
public String id;
public String title;
public String commentCount;
public String author;
public String authorid;
public String pubDate;
public String body;
public String url;
public NewsType newstype;
public News(String title, String commentCount, String author,
String pubDate, String body) {
super();
this.title = title;
this.commentCount = commentCount;
this.author = author;
this.pubDate = pubDate;
this.body = body;
}
public News() {
super();
}
}
public class NewsType {
public String type;
public String authoruid2;
public String eventurl;
public String attachment;
}
------------------------------------------开始解析xml--------------------------------------------
HttpUtils httpUtils = new HttpUtils();
RequestParams params = new RequestParams();
params.addBodyParameter("catalog", 1 + "");
params.addBodyParameter("pageIndex", index + "");
params.addBodyParameter("pageSize", 6 + "");
// com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException:
// No such field com.example.bean.News.url
httpUtils.send(HttpMethod.GET, url2, params,
new RequestCallBack<String>() {
private WeaAdapter adapter;
@Override
public void onFailure(HttpException arg0, String arg1) {
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
String result = arg0.result;
Log.i("TAG", result);
XStream stream = new XStream(new DomDriver());
stream.processAnnotations(Oschina.class);
Oschina xml = (Oschina) stream.fromXML(result);
List<News> news = xml.newslist.news;
Log.i("ggggg", xml.newslist.news.get(0).title);
for (int i = 0; i < news.size(); i++) {
String author = news.get(i).author;
String body = news.get(i).body;
String commentCount = news.get(i).commentCount;
String pubDate = news.get(i).pubDate;
String title = news.get(i).title;
list.add(new News(title, commentCount, author,
pubDate, body));
}
adapter = new WeaAdapter(getActivity(), list);
listview.setAdapter(adapter);
}
});
}