package com.pt.http01; import android.os.Handler; import android.widget.TextView; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; /** * Created by 韬 on 2016-05-14. */ public class XmlThread extends Thread{ private String url; private Handler handler; private TextView tv_result; public XmlThread(String url, Handler handler, TextView tv_result) { this.url = url; this.handler = handler; this.tv_result = tv_result; } @Override public void run() { try { //连接,并且得到XML文件的输入流 URL connurl = new URL(url); HttpURLConnection conn = (HttpURLConnection) connurl.openConnection(); conn.setRequestMethod("POST"); conn.setConnectTimeout(5000); InputStream in = conn.getInputStream(); //得到Pull解析器 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser parser = factory.newPullParser(); parser.setInput(in,"UTF-8"); //创建存储XML的集合 final List<People> peoples = new ArrayList<>(); //得到标签的类型 int eventType = parser.getEventType(); People people = null; while(eventType != XmlPullParser.END_DOCUMENT){ //得到标签的名字 String data = parser.getName(); switch (eventType){ case XmlPullParser.START_TAG: //people开始标签创建实例 if("people".equals(data)){ people = new People(); } //属性name标签给实例设置属性 if("name".equals(data)){ people.setName(parser.nextText()); } if("age".equals(data)){ people.setAge(Integer.parseInt(parser.nextText())); } if("school".equals(data)){ people.setSchool(parser.nextText()); } break; case XmlPullParser.END_TAG: //当为people字符串结束标签时,将实例添加进入集合 if("people".equals(data) && people != null){ peoples.add(people); } break; } //手动的调用时间处理的方法 eventType = parser.next(); } handler.post(new Runnable() { @Override public void run() { tv_result.setText(peoples.toString()); } }); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } } }
相关推荐
本文主要讲解Android开发中如何对XML文件的解析,由于XML文件具有与平台无关,广泛应用于数据通信中,因此解析XML文件就显得很有意义。Android对XML文件解析的方法主要有3种。 通常有三种方式:DOM、SAX和PULL,下面...
在androd手机中处理xml数据时很常见的事情,通常在不同平台传输数据的时候,我们就可能使用xml,xml是与平台无关的特性,被广泛运用于数据通信中,那么在android中如何解析xml文件数据呢?通常有三种方式:DOM,SAX,...
2、掌握用Eclipse进行Android平台的UI基本设计、HTTP网络协议及XML文件解析等关键技术的实现,深刻理解XMPP(可扩展消息处理现场协议)协议; 3、学习使用MVC模式来构建系统的客户端,并掌握这种程序设计模式,分析...
完成本文之后,您将了解如何使用 HTTP(S) 执行从应用程序到 web 服务器的通信,以及如何使用 DOM 解析器解析 XML。在此过程中,您将创建自定义和动态的用户界面布局、多线程通信、消息处理程序、以及进程对话框。...
XML的解析有三种方式,在Android中提供了三种解析XML的方式:DOM(Document Objrect Model) , SAX(Simple API XML) ,以及Android推荐的Pull解析方式,他们也各有弊端,而这里来看看使用DOM的方式。 2. Dom解析 DOM解析...
深入Android应用开发:核心技术解析与最佳实践以Android的源代码为主,SDK为辅,针对应用开发者的需求,对各种核心技术的使用方法、底层原理和实现细节进行了深入而详细的讲解,同时辅之以大量案例和最佳实践,为...
本书涵盖了Android前端界面开发、Activity java程序的开发以及ASP后台技术开发等内容,强调了Android与后台数据通信技术、XML解析技术、数据存储技术以及与Android前端配套的ASP后台技术的实现细节。
深入Android应用开发:核心技术解析与最佳实践以Android的源代码为主,SDK为辅,针对应用开发者的需求,对各种核心技术的使用方法、底层原理和实现细节进行了深入而详细的讲解,同时辅之以大量案例和最佳实践,为...
本书涵盖了Android前端界面开发、Activity java程序的开发以及ASP后台技术开发等内容,强调了Android与后台数据通信技术、XML解析技术、数据存储技术以及与Android前端配套的ASP后台技术的实现细节。
息,12_文件的保存与读取,13_文件的操作模式,14_把文件存放在SDCard,15_采用Pull解析器解析和生成XML内容,16_采 用SharedPreferences保存用户偏好设置参数,17_创建数据库与完成数据添删改查,18_在SQLite中...
《移动平台开发书库:Android项目开发详解》涵盖了Android前端界面开发、Activity java程序的开发以及ASP后台技术开发等内容,强调了Android与后台数据通信技术、XML解析技术、数据存储技术以及与Android前端配套的...
这是Android开发与应用,原书配套的课件,作者张荣,目录如下。 第1章 Android简介 1.1 手机操作系统 1.2 Android起源 1.3 Android特征 1.4 Android体系结构 1.4.1 应用层 1.4.2 应用框架层 1.4.3 ...
4、 在 AndroidManifest.xml 中声明权限 <uses-permission android:name="android.permission. INTERNET "/> 实验结果截图: 图表 1 选择城市界面 图表 2 城市天气界面 三、实验分析与小结: Socket通信开发步骤 ...
2.4.2 安装和配置Eclipse中Android插件 2.5 使用Eclipse开发Android应用程序 2.5.1 使用Eclipse创建Android项目 2.5.2 Eclipse中Android项目架构 2.5.3 Eclipse中Android项目的调试和运行 第3章 Android中的Activity...
息,12_文件的保存与读取,13_文件的操作模式,14_把文件存放在SDCard,15_采用Pull解析器解析和生成XML内容,16_采 用SharedPreferences保存用户偏好设置参数,17_创建数据库与完成数据添删改查,18_在SQLite中...
eoe出品,懂的下 让不懂Android开发的人系统地快速掌握...然后对线程&进程、数据存储、Widget、网络通信和XML解析、多设备适配、Android UI Design(设计规范)等核心技术和读者关心的流行技术结合实例进行了详细讲解;
如何解决Android网络通信中的乱码问题? 在Android中如何使用语音服务和Google Map Apl? Android如何访问摄象头、传感器等硬件的APl? 如何时行Widget开发?如何用各种Android组件来打造漂亮的UI界面? ...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
XML解析XStream 动画开源库nineoldandroids 表单验证库android-validation-komensky 更多优秀开源库等待集成... 已封装工具类: HTTP网络通信工具类(ToolHTTP.java),get/post请求,支持多种接口回调 SOAP协议通信...