`
Spiritualize_彭韬
  • 浏览: 25844 次
  • 性别: 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(eXtensible Markup Language)是一种常用的数据存储和交换格式,尤其在应用程序的配置、布局和网络通信中发挥着重要作用。XML的结构清晰,易于人类阅读和机器解析,使得它成为Android平台上的...

    android之Pull解析XML文件

    总结,Android的Pull解析XML文件是一种高效、节省资源的解析方式,适用于网络通信中的数据交换。通过创建Pull解析器实例,监听XML事件,以及适当优化,开发者可以轻松处理XML数据,实现更流畅的用户体验。在实际开发...

    android的xml文件的解析

    总结,XML解析是Android开发中的基础技能,了解并掌握DOM和SAX解析方式可以帮助开发者更有效地处理XML文件。选择合适的解析方式取决于具体的应用场景和性能需求。在实际项目中,还有一种基于SAX的拉式解析库——PULL...

    Android 生成和PULL解析xml

    本文将深入探讨如何在Android中生成XML文件以及如何使用PULL解析器来解析XML数据。 首先,我们来看一下如何在Android中生成XML文件。生成XML文件通常涉及创建一个XMLWriter对象,然后通过调用其方法来添加元素、...

    android java xml 解析生成jar

    XML解析在Android中的重要性不言而喻,因为XML常被用来描述应用程序的配置、布局,甚至是网络通信的数据交换格式。Java提供了多种XML解析方式,如DOM(Document Object Model)、SAX(Simple API for XML)和PULL...

    Android XML 解析笔记

    Android支持多种XML解析技术,包括DOM、SAX和Pull解析。每种方法都有其特定的优势和应用场景。 #### DOM解析XML DOM(Document Object Model)解析是一种将整个XML文档加载到内存中,并构建出一棵树状结构(称为DOM...

    android mars视频代码 xml源码 XML解析

    在Android Mars项目中,视频代码可能展示了如何使用Android的内置XML解析库,如`XmlPullParser`或`XmlResourceParser`来解析XML文件。`XmlPullParser`是基于SAX解析器的轻量级API,它提供了一种顺序访问XML文档的...

    Android网络下的XML解析和生成

    在Android中,有两种主要的XML解析方式:DOM(文档对象模型)和SAX(简单API for XML)。 1. DOM解析: DOM解析器会加载整个XML文档到内存中,形成一棵树形结构,每个节点代表XML文档的一部分。这种方式便于遍历和...

    三种XML文件解析例子

    Pull解析器是Android特有的轻量级XML解析方式,适合处理大型XML文件。`PullForXml`示例中,可能涉及以下步骤: 1. 引入`org.xmlpull.v1.XmlPullParserFactory`和`XmlPullParser`,创建`XmlPullParser`实例。 2. 设置...

    android在线解析xml示例

    在Android平台上,XML(eXtensible Markup ...在提供的压缩包文件"AndroidXml"中,可能包含了一个简单的Android项目,演示了上述的XML解析过程。你可以通过运行这个示例来更深入地理解Android中XML在线解析的实现。

    Android网络下的XML解析和生成.

    二、Android中的XML解析库 1. Android自带的XmlPullParser:这是Android系统提供的一个接口,用于实现Pull解析,它可以顺序读取XML文档并返回当前解析到的事件类型。 2. org.xmlpull.v1.XmlPullParserFactory:这...

    volley联网解析网络上的xml文件

    在`XMLRequest`中,重写`parseNetworkResponse()`方法,这里我们将使用`XmlPullParserFactory`和`XmlPullParser`进行XML解析。 以下是一个简单的`XMLRequest`示例: ```java public class XMLRequest extends ...

    android解析xml文件《老罗Android开发视频教程》

    总之,《老罗Android开发视频教程》中关于XML解析的内容,旨在帮助开发者掌握不同解析方法,以便在实际项目中灵活选择和应用,提高应用的性能和用户体验。通过学习和实践,开发者能更好地理解和处理XML数据,提升...

    Android利用pull生成xml文件

    总的来说,Android的Pull解析器不仅用于解析XML,还能用于生成XML文件,这在某些场景下非常有用,例如自定义数据格式的存储或网络通信中的数据序列化。通过Pull解析器生成XML,开发者可以精确地控制XML的结构和内容...

    Android网络之数据解析----SAX方式解析XML数据

    在Android应用开发中,网络通信是必不可少的一部分,而数据交换格式的选择直接影响到应用程序的性能和效率。本篇文章将深入探讨如何使用SAX(Simple API for XML)方式解析XML数据,这是Android网络通信中处理XML...

    Android中通过网络通信发送XML数据给WEB应用案例

    本案例主要讲解如何在Android应用中通过网络通信发送XML数据到Web服务器,从而实现数据交换。 首先,我们需要理解XML(eXtensible Markup Language),它是一种用于标记数据的语言,具有良好的可读性和可扩展性。在...

    Android_XML解析

    总结来说,Android提供了SAX、DOM和Pull三种XML解析方式,每种都有其适用场景。SAX适用于内存有限和性能要求高的情况,DOM适用于需要频繁查询和修改XML结构的场景,而Pull解析器则结合了两者优点,既高效又易用。...

    android中解析xml和生成xml的方法

    本篇文章将深入探讨Android中解析XML和生成XML的方法。 ### 解析XML 在Android中,有两种主要的解析XML的方式:DOM解析和SAX解析。 #### DOM解析 DOM(Document Object Model)解析器将整个XML文件加载到内存中,...

    xml航班解析实例

    本实例——“xml航班解析实例”,提供了一个全项目的压缩包,包含了源代码和注释,方便个人学习和理解XML解析在安卓应用中的具体应用。 在安卓应用中,XML解析主要分为两种方式:DOM(Document Object Model)解析...

    android的Http通信

    在AndroidManifest.xml文件中添加Internet权限,`&lt;uses-permission android:name="android.permission.INTERNET" /&gt;`,否则无法进行网络访问。 5. **HTTPS与安全**: 对于涉及敏感数据的通信,应使用HTTPS协议,...

Global site tag (gtag.js) - Google Analytics