XStream解析xml数据

javaBean 这里需要注意注解 大概意思应该就是标识

package com.example.bean;

import com.thoughtworks.xstream.annotations.XStreamAlias;

@XStreamAlias("root")
public class Book {

    private String resultcode;
    private String reason;
    private Res result;
    private String error_code;
    public String getResultcode() {
        return resultcode;
    }
    public void setResultcode(String resultcode) {
        this.resultcode = resultcode;
    }
    public String getReason() {
        return reason;
    }
    public void setReason(String reason) {
        this.reason = reason;
    }
    public Res getResult() {
        return result;
    }
    public void setResult(Res result) {
        this.result = result;
    }
    public String getError_code() {
        return error_code;
    }
    public void setError_code(String error_code) {
        this.error_code = error_code;
    }
    public Book() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Book(String resultcode, String reason, Res result, String error_code) {
        super();
        this.resultcode = resultcode;
        this.reason = reason;
        this.result = result;
        this.error_code = error_code;
    }
    @Override
    public String toString() {
        return "Book [resultcode=" + resultcode + ", reason=" + reason
                + ", result=" + result + ", error_code=" + error_code + "]";
    }

}
package com.example.bean;

import java.util.List;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
@XStreamAlias("result")
public class Res {
    @XStreamImplicit(itemFieldName="item")
    private List<TExt> item;

    public List<TExt> getItem() {
        return item;
    }

    public void setItem(List<TExt> item) {
        this.item = item;
    }

    public Res() {
        super();
        // TODO Auto-generated constructor stub
    }

    public Res(List<TExt> item) {
        super();
        this.item = item;
    }

    @Override
    public String toString() {
        return "Res [item=" + item + "]";
    }

}
package com.example.bean;


public class TExt {

    private String id;
    private String catalog;
    @Override
    public String toString() {
        return "TExt [id=" + id + ", catalog=" + catalog + "]";
    }
    public TExt(String id, String catalog) {
        super();
        this.id = id;
        this.catalog = catalog;
    }
    public TExt() {
        super();
        // TODO Auto-generated constructor stub
    }
    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;
    }
}

这里面需要导入XStream包

package com.example.xstreamdemo;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;

import com.example.bean.Book;
import com.example.bean.Res;
import com.example.bean.TExt;
import com.thoughtworks.xstream.XStream;


public class MainActivity extends Activity {

    private String url="http://apis.juhe.cn/goodbook/catalog?key=eb487dc80b175790e914b7f62e94c478&dtype=xml";
    private HttpURLConnection connection;
    private String json;
    private Handler handler=new Handler(){

        public void handleMessage(Message msg) {
            XStream tream=new XStream();
            tream.processAnnotations(Book.class);
            Book bb = (Book) tream.fromXML(json);
            Res result = bb.getResult();
            List<TExt> item = result.getItem();
            Log.i("item", item.toString());
        };
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new Thread(){

            public void run() {
                json = getjiexi(url);
                Message msg=new Message();
                msg.obj=
                handler.sendMessage(msg);
            };
        }.start();

    }
    protected String getjiexi(String url2) {
        String ss=null;
           try {
               URL url=new URL(url2);
               connection = (HttpURLConnection) url.openConnection();
               connection.setRequestMethod("GET");
               connection.setConnectTimeout(8000);
               connection.setReadTimeout(5000);
               InputStream stream = connection.getInputStream();
               BufferedReader reader=new BufferedReader(new InputStreamReader(stream));
               final StringBuilder builder=new StringBuilder();
               String line;
            while((line=reader.readLine())!=null){
                   builder.append(line);
                    ss = builder.toString();

               }
            Log.i("ss", ss);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return ss;
    }




}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值