您的位置:首页 > 理论基础 > 计算机网络

Xml的pull解析

2018-01-04 17:31 127 查看
package com.example.administrator.xmlpullparse;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.util.Xml;

import com.squareup.okhttp.OkHttpClient;

import com.squareup.okhttp.Request;

import com.squareup.aokhttp.Response;

import org.xmlpull.v1.XmlPullParser;

import org.xmlpull.v1.XmlPullParserException;

import org.xmlpull.v1.XmlPullParserFactory;

import java.io.IOException;

import java.io.StringReader;

public class MainActivity extends AppCompatActivity {

    private  static  final  String urlPath="http://192.168.0.110:8080/qw.xml";    //自己开的服务器地址

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        sendRequest();

    }

    private void sendRequest() {

   new Thread(new Runnable() {

       @Override

       public void run() {

           OkHttpClient client=new OkHttpClient();

           Request request=new Request.Builder()

                   .url(urlPath)

                   .build();

           try {

               Response response=client.newCall(request).execute();

               String responseData=response.body().string();

               parseXmlpull(responseData);

           } catch (IOException e) {

               e.printStackTrace();

           }

       }

   }).start();

    }

    private void parseXmlpull(String responseData) {

        try {

            XmlPullParserFactory factory= XmlPullParserFactory.newInstance();

            XmlPullParser xmlparse= Xml.newPullParser();

            xmlparse.setInput(new StringReader(responseData));

            int eventType =xmlparse.getEventType();

            String id="";

            String name="";

            String age="";

            while(eventType !=XmlPullParser.END_DOCUMENT){

                String nodename=xmlparse.getName();

                switch (eventType){

                    case XmlPullParser.START_TAG:

                        if ("id".equals(nodename)) {

                            id = xmlparse.nextText();

                        } else if ("name".equals(nodename)) {

                            name = xmlparse.nextText();

                        } else if ("age".equals(nodename)) {

                            age = xmlparse.nextText();

                        }

                        break;

                    case XmlPullParser.END_TAG:

                        if (nodename.equals("app")) {

                            Log.d("asdasd", "app="+id + name + age );

                        }

                        break;

                    default:

                       break;

                }

                eventType=xmlparse.next();

            }

        } catch (XmlPullParserException | IOException e) {

            e.printStackTrace();

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息