`
Spiritualize_彭韬
  • 浏览: 24858 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Android中的Http通信之xml文件解析

 
阅读更多

 

 

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文件的解析的三种方法

    本文主要讲解Android开发中如何对XML文件的解析,由于XML文件具有与平台无关,广泛应用于数据通信中,因此解析XML文件就显得很有意义。Android对XML文件解析的方法主要有3种。 通常有三种方式:DOM、SAX和PULL,下面...

    android解析xml文件的方式

    在androd手机中处理xml数据时很常见的事情,通常在不同平台传输数据的时候,我们就可能使用xml,xml是与平台无关的特性,被广泛运用于数据通信中,那么在android中如何解析xml文件数据呢?通常有三种方式:DOM,SAX,...

    基于Android平台的即时通信系统的设计与实现

    2、掌握用Eclipse进行Android平台的UI基本设计、HTTP网络协议及XML文件解析等关键技术的实现,深刻理解XMPP(可扩展消息处理现场协议)协议; 3、学习使用MVC模式来构建系统的客户端,并掌握这种程序设计模式,分析...

    Android_和_XML_构建动态用户界面

    完成本文之后,您将了解如何使用 HTTP(S) 执行从应用程序到 web 服务器的通信,以及如何使用 DOM 解析器解析 XML。在此过程中,您将创建自定义和动态的用户界面布局、多线程通信、消息处理程序、以及进程对话框。...

    Android利用Dom对XML进行增删改查操作详解

    XML的解析有三种方式,在Android中提供了三种解析XML的方式:DOM(Document Objrect Model) , SAX(Simple API XML) ,以及Android推荐的Pull解析方式,他们也各有弊端,而这里来看看使用DOM的方式。 2. Dom解析 DOM解析...

    深入Android应用开发 核心技术解析与最佳实践

    深入Android应用开发:核心技术解析与最佳实践以Android的源代码为主,SDK为辅,针对应用开发者的需求,对各种核心技术的使用方法、底层原理和实现细节进行了深入而详细的讲解,同时辅之以大量案例和最佳实践,为...

    Android项目 开发详解

    本书涵盖了Android前端界面开发、Activity java程序的开发以及ASP后台技术开发等内容,强调了Android与后台数据通信技术、XML解析技术、数据存储技术以及与Android前端配套的ASP后台技术的实现细节。

    深入Android应用开发 核心技术解析与最佳实践.z01

    深入Android应用开发:核心技术解析与最佳实践以Android的源代码为主,SDK为辅,针对应用开发者的需求,对各种核心技术的使用方法、底层原理和实现细节进行了深入而详细的讲解,同时辅之以大量案例和最佳实践,为...

    Android项目开发详解

    本书涵盖了Android前端界面开发、Activity java程序的开发以及ASP后台技术开发等内容,强调了Android与后台数据通信技术、XML解析技术、数据存储技术以及与Android前端配套的ASP后台技术的实现细节。

    8天快速掌握Android系列视频之04_开发与 运行(卸载)第一个ANDROID应用

    息,12_文件的保存与读取,13_文件的操作模式,14_把文件存放在SDCard,15_采用Pull解析器解析和生成XML内容,16_采 用SharedPreferences保存用户偏好设置参数,17_创建数据库与完成数据添删改查,18_在SQLite中...

    Android项目开发详解,完整扫描版

    《移动平台开发书库:Android项目开发详解》涵盖了Android前端界面开发、Activity java程序的开发以及ASP后台技术开发等内容,强调了Android与后台数据通信技术、XML解析技术、数据存储技术以及与Android前端配套的...

    Android开发与应用——张荣,原书配套课件

    这是Android开发与应用,原书配套的课件,作者张荣,目录如下。 第1章 Android简介 1.1 手机操作系统 1.2 Android起源 1.3 Android特征 1.4 Android体系结构 1.4.1 应用层 1.4.2 应用框架层 1.4.3 ...

    Android实验七.doc

    4、 在 AndroidManifest.xml 中声明权限 &lt;uses-permission android:name="android.permission. INTERNET "/&gt; 实验结果截图: 图表 1 选择城市界面 图表 2 城市天气界面 三、实验分析与小结: Socket通信开发步骤 ...

    Android入门到精通源代码.

    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...

    8天快速掌握Android系列视频之07_查看应用输出的错误信息 与如何部署应用到真实手机

    息,12_文件的保存与读取,13_文件的操作模式,14_把文件存放在SDCard,15_采用Pull解析器解析和生成XML内容,16_采 用SharedPreferences保存用户偏好设置参数,17_创建数据库与完成数据添删改查,18_在SQLite中...

    Android开发入门与实战+和第二版部分章节+第二版源代码

    eoe出品,懂的下 让不懂Android开发的人系统地快速掌握...然后对线程&进程、数据存储、Widget、网络通信和XML解析、多设备适配、Android UI Design(设计规范)等核心技术和读者关心的流行技术结合实例进行了详细讲解;

    Android应用开发揭秘(pdf )

     如何解决Android网络通信中的乱码问题?  在Android中如何使用语音服务和Google Map Apl? Android如何访问摄象头、传感器等硬件的APl?  如何时行Widget开发?如何用各种Android组件来打造漂亮的UI界面?  ...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    集成目前Android主流优秀第三方组件

    XML解析XStream 动画开源库nineoldandroids 表单验证库android-validation-komensky 更多优秀开源库等待集成... 已封装工具类: HTTP网络通信工具类(ToolHTTP.java),get/post请求,支持多种接口回调 SOAP协议通信...

Global site tag (gtag.js) - Google Analytics