XML Stream

package com.example.wangjiaxin20160516;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;

import com.example.wangjiaxin20160516.xlistviews.XListView;
import com.example.wangjiaxin20160516.xlistviews.XListView.IXListViewListener;
import com.google.gson.Gson;
import com.lidroid.xutils.BitmapUtils;
import com.thoughtworks.xstream.XStream;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements IXListViewListener{

private String qwe;
    StringBuffer sb = new StringBuffer();
    private XListView listview;
    private List<Data3> item;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listview = (XListView) findViewById(R.id.listview);
        
        listview.setPullLoadEnable(true);//设置下拉刷新
        listview.setPullRefreshEnable(true);//设置监听事件,重写两个方法
        listview.setXListViewListener(this);//设置上拉刷新
        
        new Thread() {

public void run() {
                try {
                    final URL url = new URL(
                            "http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&catalog_id=242&pn=0&rn=20&dtype=xml");
                    HttpURLConnection connection = (HttpURLConnection) url
                            .openConnection();
                    connection.setRequestMethod("GET");
                    connection.connect();

int responseCode = connection.getResponseCode();
                    if (responseCode == 200) {
                        InputStreamReader inputStreamReader = new InputStreamReader(
                                connection.getInputStream());
                        BufferedReader bufferedReader = new BufferedReader(
                                inputStreamReader);
                        while ((qwe = bufferedReader.readLine()) != null) {
                                sb.append(qwe);
                        }

}
                } catch (Exception e) {
                    e.printStackTrace();
                }
                String str = sb.toString();
                XStream stream = new XStream();
                stream.processAnnotations(Data.class);
                Data data = (Data) stream.fromXML(str);
                item = data.getResult().getData().getItem();    
                runOnUiThread(new Runnable() {
                    public void run() {
                    listview.setAdapter(new MyAdapter());    
                    }
                });
            }
        }.start();

}

class MyAdapter extends BaseAdapter {

@Override
        public int getCount() {
            return item.size();
        }

@Override
        public Object getItem(int arg0) {
            return null;
        }

@Override
        public long getItemId(int arg0) {
            return 0;
        }

@Override
        public View getView(int arg0, View arg1, ViewGroup arg2) {
            arg1 = arg1.inflate(MainActivity.this, R.layout.item, null);
            ImageView im = (ImageView)arg1.findViewById(R.id.im);
            TextView text = (TextView) arg1.findViewById(R.id.text);
            TextView text1 = (TextView)arg1.findViewById(R.id.text1);
            TextView text2 = (TextView)arg1.findViewById(R.id.text2);
            BitmapUtils bitmapUtils = new BitmapUtils(MainActivity.this);
            bitmapUtils.display(im,item.get(arg0).getImg());
            text.setText(item.get(arg0).getTitle());
            text1.setText(item.get(arg0).getCatalog());
            text2.setText(item.get(arg0).getSub1());
            return arg1;
        }
    }

@Override
    public void onRefresh() {
        new Thread() {

public void run() {
                try {
                    final URL url = new URL(
                            "http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&catalog_id=242&pn=0&rn=20&dtype=xml");
                    HttpURLConnection connection = (HttpURLConnection) url
                            .openConnection();
                    connection.setRequestMethod("GET");
                    connection.connect();

int responseCode = connection.getResponseCode();
                    if (responseCode == 200) {
                        InputStreamReader inputStreamReader = new InputStreamReader(
                                connection.getInputStream());
                        BufferedReader bufferedReader = new BufferedReader(
                                inputStreamReader);
                        while ((qwe = bufferedReader.readLine()) != null) {
                                sb.append(qwe);
                        }

}
                } catch (Exception e) {
                    e.printStackTrace();
                }
                String str = sb.toString();
                XStream stream = new XStream();
                stream.processAnnotations(Data.class);
                Data data = (Data) stream.fromXML(str);
                item = data.getResult().getData().getItem();    
                runOnUiThread(new Runnable() {
                    public void run() {
                    listview.setAdapter(new MyAdapter());    
                    }
                });
            }
        }.start();
    }

@Override
    public void onLoadMore() {
        new Thread() {

public void run() {
                try {
                    final URL url = new URL(
                            "http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&catalog_id=242&pn=0&rn=20&dtype=xml");
                    HttpURLConnection connection = (HttpURLConnection) url
                            .openConnection();
                    connection.setRequestMethod("GET");
                    connection.connect();

int responseCode = connection.getResponseCode();
                    if (responseCode == 200) {
                        InputStreamReader inputStreamReader = new InputStreamReader(
                                connection.getInputStream());
                        BufferedReader bufferedReader = new BufferedReader(
                                inputStreamReader);
                        while ((qwe = bufferedReader.readLine()) != null) {
                                sb.append(qwe);
                        }

}
                } catch (Exception e) {
                    e.printStackTrace();
                }
                String str = sb.toString();
                XStream stream = new XStream();
                stream.processAnnotations(Data.class);
                Data data = (Data) stream.fromXML(str);
                item = data.getResult().getData().getItem();    
                runOnUiThread(new Runnable() {
                    public void run() {
                    listview.setAdapter(new MyAdapter());    
                    }
                });
            }
        }.start();    
    }
}

时间: 2024-10-07 02:09:42

XML Stream的相关文章

解决调用WebService短信接口后报Provider com.sun.xml.stream.ZephyrParserFactory not found

Exception in thread "main" javax.xml.stream.FactoryFinder$ConfigurationError: Provider com.sun.xml.stream.ZephyrParserFactory not found at javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:152) at javax.xml.stream.FactoryFinder.findJ

webservice wsdl axis2报错 Provider com.bea.xml.stream.MXParserFactory not found

错误信息: Exception in thread "main" javax.xml.stream.FactoryConfigurationError: Provider com.bea.xml.stream.MXParserFactory not found at javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:72) at javax.xml.stream.FactoryFinder.find(Factor

java.lang.NoClassDefFoundError: javax/xml/stream/XMLStreamException

?缺少jsr173_1.0_api.jar 包 或者jdk版本不对(包括工程和tomcat等服务器的jdk版本) 以前的一个xfire工程,今天重新导进后不能运行,修改工程的jdk版本不行,最后发现是tomcat环境的jdk版本题目,囧

JAVA解析XML之SAX方式

JAVA解析XML之SAX方式 SAX解析xml步骤 通过SAXParseFactory的静态newInstance()方法获取SAXParserFactory实例factory 通过SAXParserFactory实例的newSAXParser()方法返回SAXParser实例parser 创建一个类继承DefaultHandle,重写方法进行业务处理并创建这个类的实例handle 重写DefaultHandle类的方法 startElement方法用来遍历xml文件的开始标签; endEle

java攻城狮之路--复习xml&amp;dom_pull编程续

本章节我们要学习XML三种解析方式: 1.JAXP DOM 解析2.JAXP SAX 解析3.XML PULL 进行 STAX 解析 XML 技术主要企业应用1.存储和传输数据 2.作为框架的配置文件 使用xml 存储和传输数据1.通过程序生成xml2.读取xml 中数据 ---- xml 解析 什么是DOM和SAX ?DOM Document Object Model ----- 文档对象模型 DOM思想: 将整个xml 加载内存中,形成文档对象,所有对xml操作都对内存中文档对象进行DOM

解析从服务器端返回的xml文件流

服务器端有xml流过来,为了解析,最初使用的方法是构建一个StringBuilder,在onMessage方法中不断append,最终形成一个完成的xml文件字符串(其中包含多个xml).最后使用DocumentBuilder来解析.这种做法在数据量小的时候可以维持,当一次传来大量xml,便会出现OOM. 改良后的方法使用边接收数据,边解析的异步方式,这样解析过的部分就可以丢掉而不继续占用内存. 准备工作,需要熟悉的API, com.sun.jersey.api.client.Client :

jaxp解析XML之DOM解析

XML解析技术XML解析方式分为三种一种是DOM解析一种是SAX解析 DOM思想:将整个xml加载入内存,形成围挡对象,所有对xml操作都是对内存中节点对象进行,DOM是官方xml解析标准,同时支持解析其他各种语言 SAX解析方式的出现,因为DOM的解析方式需要对文档进行加载入内存,当文档较大的时候比较消耗资源,这时候就出现了SAX解析SAX思想:一边解析,一边处理,一边释放资源 在JDK6中又引入了另一种StAX解析方式是一种拉模式的xml解析方式,而SAX是一种推模式XML解析方式推模式由服

应用 SAX 方式解析 XML

分为三部分: 1. package com; import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.SAXException; import com.ii.SAXParserHandler;

[转载] 使用StAX解析xml

StAX 概述 从一开始,Java API for XML Processing (JAXP) 就提供了两种方法来处理 XML:文档对象模型(DOM)方法是用标准的对象模型表示 XML 文档:Simple API for XML (SAX) 方法使用应用程序提供的事件处理程序来处理 XML.JSR-173 提出了一种面向流的新方法:Streaming API for XML (StAX).其最终版本于 2004 年 3 月发布,并成为了 JAXP 1.4(将包含在即将发布的 Java 6 中)的