pull解析解析月考题

MainActivity.class:

package com.example.map_new_two;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ListView;

public class MainActivity extends Activity {

    private String url="http://apis.juhe.cn/goodbook/catalog?key=9d6ef8c31647a206e05fcaff70527182&dtype=xml";
    private ListView list_view;
    private List<Item> list=new ArrayList<Item>();
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list_view=(ListView) findViewById(R.id.list_view);
        new Thread(){

            public void run() {
                init();

            }

        }.start();
        list_view.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent it=new Intent(getApplicationContext(),HomeActivity.class);
                startActivity(it);

            }
        });
    }

    private void init() {
        // TODO Auto-generated method stub
        HttpClient httpClient=new DefaultHttpClient();
        HttpGet httpGet=new HttpGet(url);
        try {
            HttpResponse httpResponse=httpClient.execute(httpGet);
            int len=httpResponse.getStatusLine().getStatusCode();
            if(len==200){
                HttpEntity httpEntity=httpResponse.getEntity();
                InputStream input=httpEntity.getContent();
                XmlPullParserFactory factory=XmlPullParserFactory.newInstance();
                XmlPullParser parser=factory.newPullParser();
                parser.setInput(input, "utf-8");
                int exenttype=parser.getEventType();
                String name="";
                Item item = null;
                while(exenttype!=XmlPullParser.END_DOCUMENT){

                    switch (exenttype) {
                    case XmlPullParser.START_DOCUMENT:

                        break;
                    case XmlPullParser.START_TAG:
                        name = parser.getName();
                        if("item".equals(name)){
                            item=new Item();
                        }
                        break;

                    case XmlPullParser.TEXT:
                        String text=parser.getText();
                        if("id".equals(name)){
                            item.setId(text);
                        }else if("catalog".equals(name)){
                            item.setCatalog(text);
                            Log.i("TAG","fffffffrrrrrrrrrrrrrrrrrrrrrrrffff"+text);
                        }
                        break;

                    case XmlPullParser.END_TAG:
                        name = parser.getName();
                        if("item".equals(name)){
                            list.add(item);
                            item=null;

                        }
                        name="";
                        break;
                    case XmlPullParser.END_DOCUMENT:

                        break;

                    default:
                        break;
                    }
                    exenttype=parser.next();
                }

            }

            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    Mybase base=new Mybase(list, getApplicationContext());
                    list_view.setAdapter(base);
                }
            });

        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (XmlPullParserException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    };

}

vo类:

package com.example.map_new_two;

public class Item {
private String id;
private String catalog;
public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}
public String getCatalog() {
    return catalog;
}
public void setCatalog(String catalog) {
    this.catalog = catalog;
}
@Override
public String toString() {
    return "Item [id=" + id + ", catalog=" + catalog + "]";
}

}

适配器:bitmap解析图片:

package com.example.map_new_two;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView.FindListener;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class Mybase extends BaseAdapter{
        private List<Item> base;
        private Context context;

    public Mybase(List<Item> base, Context context) {
            super();
            this.base = base;
            this.context = context;
        }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return base.size();
    }

    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return base.get(arg0);
    }

    @Override
    public long getItemId(int arg0) {
        // TODO Auto-generated method stub
        return arg0;
    }

    @Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {
        // TODO Auto-generated method stub
        Viehoder vh;
        if(arg1==null){
            vh=new Viehoder();
            arg1=LayoutInflater.from(context).inflate(R.layout.item,null);
            vh.texView1=(TextView) arg1.findViewById(R.id.textView1);
            arg1.setTag(vh);
        }else{
            vh=(Viehoder) arg1.getTag();
        }
        vh.texView1.setText(base.get(arg0).getCatalog());
        return arg1;
    }
class Viehoder{
    TextView texView1;

}
}
时间: 2024-10-11 00:22:26

pull解析解析月考题的相关文章

通过Pull方式解析xml文件

说明:此案例使用的是通过Sax方式解析xml文件这篇文章里的布局文件.City类和china.xml文件(此文件内包含两种格式),所以只需要完成MainActivity和PullXml就行了,在于展示如何使用Pull方式解析xml文件. 1. PullXml类的主要代码如下: <span style="font-size:14px;">public class PullXml { public List<City> pullXml() { List<Cit

安卓系列三(使用pull 方式解析xml文件)

import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlSerializer; import android.annotation.SuppressLint; import android.util.Xml; imp

Android 使用pull,sax解析xml

pull解析xml文件 1.获得XmlpullParser类的引用 这里有两种方法 //解析器工厂 XmlPullParserFactory factory=XmlPullParserFactory.newInstance(); XmlPullParser pullParser=factory.newPullParser(); //直接获得实例XmlPullParser pullParser= Xml.newPullParser(); 2.设置解析内容 通过setInput方法设置解析内容  

pull 方式解析xml文件

XmlPullParser解析xml的android文档docs/reference/org/xmlpull/v1/XmlPullParser.html xmlPullParer官网:http://www.xmlpull.org/ 例子:要解析的文件:pull.xml <?xml version="1.0" encoding="UTF-8"?> <Customer>  <PersonName>   <SurName>张

Android 采用PULL来解析XML

概述: PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中使用,Android系统内部在解析各种XML时也是用PULL解析器,Android官方推荐开发者们使用Pull解析技术.Pull解析技术是第三方开发的开源技术,它同样可以应用于JavaSE开发. PULL 的工作原理: XML pull提供了开始元素和结束元素.当某个元素开始时,可以调用parser.nextText从XML文档中提取所有字符数据.当解析到一个文档结束时,自动生成EndDocument事件.

Pull生成&amp;解析

开篇注意,由于解析有可能有大文件非常耗时,建议另开一个线程解析也可以不开具体视情况而定 Pull生成 1.通过xml获得序列化的实例 XmlSerializer nxs = Xml.newSerializer(); 2.设置文件输出路径以及输出格式 nxs.setOutput(os, encoding);     注释:os是文件流,encoding是编码格式 3.文档开始标签文档的读取的编码格式,以及是否是独立的文档 nxs.startDocument(encoding, standalone

Android中使用PULL方式解析XML文件

Pull解析器的运行方式与 SAX 解析器相似.它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件.跟SAX不同的是, Pull解析器产生的事件是一个数字,而非方法,因此可以使用一个switch对感兴趣的事件进行处理.当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型节点的值. 下面我们通过Demo例子来介绍如何使用PULL机制来解析XML文件.先看下如下工程的目录结构: 按以下步骤进行操作: [1]

pull方法解析xml

private static List<Schoolnews> parseXML(InputStream in) throws XmlPullParserException, IOException { List<Schoolnews> snews = null; Schoolnews schoolnews = null; XmlPullParser pullParser = Xml.newPullParser(); pullParser.setInput(in, "UT

Pull方式解析XML文件

package com.pingyijinren.test; import android.content.Intent; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import a