ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android学习——pull解析方式

2021-06-21 11:01:27  阅读:135  来源: 互联网

标签:xml pull tv Message msg import Android 解析 android


在Android中,常见的XML解析器分别为SAX解析器、DOM解析器和PULL解析器,其中PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中使用,Android系统内部在解析各种XML时也是用PULL解析器,今天我来介绍一下PULL解析器

package com.hb.xml;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.xmlpull.v1.XmlPullParser;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Xml;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
    protected static final int NUMBER = 0;
    protected static final int LOCATION = 1;
    protected static final int PHONEJX = 2;
    protected static final int NO = 3;
    private Button bt_start;
    private TextView tv_desc;
    private TextView tv_number;
    private TextView tv_for;
    private String path;
    private XmlPullParser xml;
    private Handler handler=new Handler(){
        public void handleMessage(android.os.Message msg) {
            switch (msg.what) {
            case NUMBER:
                tv_number.setText((String)msg.obj);
                Toast.makeText(MainActivity.this, "测试成功", 0).show();
                break;
            case LOCATION:
                tv_for.setText((String)msg.obj);
                Toast.makeText(MainActivity.this, "测试成功", 0).show();
                break;
            case PHONEJX:
                tv_desc.setText((String)msg.obj);
                Toast.makeText(MainActivity.this, "测试成功", 0).show();
                break;
            case NO:
                Toast.makeText(MainActivity.this, "测试失败", 0).show();
                break;
            }
        };
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        bt_start=(Button) findViewById(R.id.bt_start);
        tv_desc=(TextView) findViewById(R.id.tv_desc);
        tv_number=(TextView) findViewById(R.id.tv_number);
        tv_for=(TextView) findViewById(R.id.tv_for);
    }
    public void testtesting(View v){
        new Thread(){

            public void run() {
                try {
                    URL url = new URL("http://192.168.1.104:8080/test.xml");
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    conn.setConnectTimeout(3000);
                    conn.setRequestMethod("GET");
                    int code = conn.getResponseCode();
                    if(code==200){

                        InputStream is = conn.getInputStream();
                        xml = Xml.newPullParser();
                        xml.setInput(is, "gbk");
                        int type = xml.getEventType();
                        while (type!=XmlPullParser.END_DOCUMENT) {
                            if(type == XmlPullParser.START_TAG){
                                if("phonenum".equals(xml.getName())){
                                    String phonenum=xml.nextText();
                                    Message msg= new Message();
                                    msg.what=NUMBER;
                                    msg.obj=phonenum;
                                    handler.sendMessage(msg);
                                }else if("location".equals(xml.getName())){
                                    String location=xml.nextText();
                                    Message msg= new Message();
                                    msg.what=LOCATION;
                                    msg.obj=location;
                                    handler.sendMessage(msg);
                                }else if("phoneJx".equals(xml.getName())){
                                    String desc=xml.nextText();
                                    Message msg= new Message();
                                    msg.what=PHONEJX;
                                    msg.obj=desc;
                                    handler.sendMessage(msg);
                                }
                            }else{
                                //测试失败
                            }
                            type=xml.next();
                        }
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    Message msg= new Message();
                    msg.what=NO;
                    handler.sendMessage(msg);
                }
            };
        }.start();
    }
}

 

标签:xml,pull,tv,Message,msg,import,Android,解析,android
来源: https://www.cnblogs.com/ltw222/p/14911827.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有