android下载解析xml
来源:互联网 发布:it专业 编辑:程序博客网 时间:2024/06/08 03:14
android下载解析xml
public class MainActivity extends Activity { protected static final String PATH = "http://192.168.37.2:8081/news/news.xml"; protected static final int TIME_OUT = 3000; private ListView lv_news; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg){ switch (msg.what) { case RESULT_OK: List<Item> list = (List<Item>) msg.obj; lv_news.setAdapter(new MyAdapter(list,MainActivity.this)); break; case RESULT_CANCELED: Log.d("tag", "RESULT_CANCELED"); break; default: break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv_news = (ListView) findViewById(R.id.lv_news); } public void readNews(View view){ new Thread(new Runnable() { @Override public void run() { try { URL url = new URL(PATH); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setReadTimeout(TIME_OUT); conn.connect(); int responseCode = conn.getResponseCode(); if (responseCode==200) { InputStream is = conn.getInputStream(); List<Item> items = parserXML(is); handler.obtainMessage(RESULT_OK, items).sendToTarget(); }else{ handler.obtainMessage(RESULT_CANCELED, "发送失败").sendToTarget(); } } catch (Exception e) { e.printStackTrace(); } } }).start(); } protected List<Item> parserXML(InputStream is) throws Exception { XmlPullParser parser = Xml.newPullParser(); parser.setInput(is, "utf-8"); List<Item> list = null ; Item item = null ; int event =-1; while((event=parser.next())!=XmlPullParser.END_DOCUMENT){ String tagName = parser.getName(); if(event == XmlPullParser.START_TAG){ if("channel".equals(tagName)){ list = new ArrayList<Item>(); } else if ("item".equals(tagName)) { item = new Item(); }else if ("title".equals(tagName)) { item.tile = parser.nextText(); }else if ("description".equals(tagName)) { item.desc = parser.nextText(); }else if ("image".equals(tagName)) { item.image = parser.nextText(); }else if ("type".equals(tagName)) { item.type= parser.nextText(); }else if ("comment".equals(tagName)) { item.comment= parser.nextText(); } }else if (event==XmlPullParser.END_TAG) { if("item".equals(tagName)){ list.add(item); } } } return list; } }
阅读全文
0 0
- android下载解析xml
- Android 开发XML解析,从服务器下载
- Android HTTP下载XML文件并解析
- Android 从网络下载xml文件并进行解析
- android之Http下载 和xml 解析(SAX)
- ListView+网络下载+xml解析
- XML---Android中解析XML .
- XML - Android中解析XML
- android 解析XML 生成XML
- android Pull解析(XML解析)
- android XML解析
- Android Manifest.xml解析
- Android XML文档解析
- android xml解析
- android--xml解析
- Android--xml解析(Dom)
- Android中解析XML
- android SAX解析XML
- ChibiOS/RT移植到STM32F407
- Codeforces 770D Draw Brackets! 模拟+中缀表达式
- LeetCode #718 Maximum Length of Repeated Subarray
- 20171104-程序员的自我修养
- C++动态内存管理(比较C动态内存管理)
- android下载解析xml
- GPIO口超强总结
- [bzoj4356][ceoi2014] wall
- PS之卡通徽章制作
- docker container DNS配置介绍和源码分析
- 链表倒序
- shell局部变量和全局变量
- js基本操作2
- Unable to find setter method for attribute: [commandName]