Androidx学习笔记(34)---新闻客户端之获取新闻xml文件并解析
来源:互联网 发布:注射死刑 知乎 编辑:程序博客网 时间:2024/05/19 22:25
1、根据xml的结点定义JavaBean
<newslist><news><title>黑马52期就业快报</title><detail>热烈祝贺黑马52期平均薪水突破13k</detail><comment>15687</comment><image>http://192.168.1.100:8080/images/6.jpg</image></news><news><title>程序员因写代码太乱被杀害</title><detail>凶手是死者同事,维护死者代码时完全看不懂而痛下杀手</detail><comment>16359</comment><image>http://192.168.1.100:8080/images/7.jpg</image></news></newslist>
public class News {private String title;private String detail;private String comment;private String imageUrl;@Overridepublic String toString() {return "News [title=" + title + ", detail=" + detail + ", comment="+ comment + ", imageUrl=" + imageUrl + "]";}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getDetail() {return detail;}public void setDetail(String detail) {this.detail = detail;}public String getComment() {return comment;}public void setComment(String comment) {this.comment = comment;}public String getImageUrl() {return imageUrl;}public void setImageUrl(String imageUrl) {this.imageUrl = imageUrl;}}
2 解析代码
public class MainActivity extends Activity {List<News> newsList;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getNewsInfo();} //开辟子线程下载新闻private void getNewsInfo() {Thread t = new Thread(){@Overridepublic void run() {String path = "http://192.168.13.13:8080/news.xml";try {URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");conn.setConnectTimeout(5000);conn.setReadTimeout(5000);//发送http GET请求,获取相应码if(conn.getResponseCode() == 200){InputStream is = conn.getInputStream();//使用pull解析器,解析这个流parseNewsXml(is);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}};t.start();}private void parseNewsXml(InputStream is) {XmlPullParser xp = Xml.newPullParser();try {xp.setInput(is, "utf-8");//对节点的事件类型进行判断,就可以知道当前节点是什么节点int type = xp.getEventType();News news = null;while(type != XmlPullParser.END_DOCUMENT){switch (type) {case XmlPullParser.START_TAG:if("newslist".equals(xp.getName())){newsList = new ArrayList<News>();}else if("news".equals(xp.getName())){news = new News();}else if("title".equals(xp.getName())){String title = xp.nextText();news.setTitle(title);}else if("detail".equals(xp.getName())){String detail = xp.nextText();news.setDetail(detail);}else if("comment".equals(xp.getName())){String comment = xp.nextText();news.setComment(comment);}else if("image".equals(xp.getName())){String image = xp.nextText();news.setImageUrl(image);}break;case XmlPullParser.END_TAG:if("news".equals(xp.getName())){ //把news对象放着到集合中去newsList.add(news);}break;}//解析完当前节点后,把指针移动至下一个节点,并返回它的事件类型type = xp.next();}//发消息,让主线程设置listview的适配器,如果消息不需要携带数据,可以发送空消息handler.sendEmptyMessage(1);//用于测试 查看数据是否获取正确//for (News n : newsList) {//System.out.println(n.toString());//}} catch (Exception e) {e.printStackTrace();}}}
控制台输出效果
0 0
- Androidx学习笔记(34)---新闻客户端之获取新闻xml文件并解析
- Androidx学习笔记(33)---新闻客户端之布局
- Androidx学习笔记(35)---新闻客户端之ListView显示新闻内容&ViewHolder优化
- Android-通过网络获取xml文件使用pull解析得到服务器中的信息(新闻客户端)
- 简易新闻app(上)之xml文件解析
- Android 新闻客户端学习笔记
- Androidx学习笔记(17)-- 数据存储之XML
- 使用Pull解析XML获取新浪新闻
- 新闻客户端代码解析
- 模拟新闻客户端从服务器获取xml数据并显示到ListView
- xml解析实例--新闻
- android之新闻客户端
- xml解析新浪新闻_客户端_下拉刷新
- xml解析新浪新闻_客户端_下拉刷新2
- Android学习(48) -- 获取xml文件并解析.
- 新闻英语学习笔记
- 《新闻》之笔记一
- 《新闻》之笔记二
- iptables(一)
- 【NYOJ】[75]日期计算
- 黑马程序员——Java正则表达式
- struts2全局结果
- struts2-通过action从后台将json数据传到前台的方法(二)
- Androidx学习笔记(34)---新闻客户端之获取新闻xml文件并解析
- 【数据结构】二叉树的前中后序遍历递归和非递归实现
- spark-submit到yarn上遇到的各种坑
- INSTALL CGAL on ubuntu and use it in qt
- Fragment already added 解决办法
- 链表存储数据并排序
- 黑马程序员 OC中compare字符串比较及其参数理解
- 蓝桥杯算法训练 连续正整数的和
- sql存储过程中启用事务