【Android 基础】 XStream 使用

android Xml 解析之 XStream 解析


XStream解析

XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换,将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件.

1. 下载路径

http://x-stream.github.io/download.html

2. 常用方法API

(1)fromXML()方法,返回值是Object

xStream.fromXML( File file) ;

xStream.fromXML( InputStream in) ;

xStream.fromXML( Reader reader ) ;

xStream.fromXML( String xml ) ;

xStream.fromXML( URL url ) ;

xStream.fromXML( File file , Object root ) ;

xStream.fromXML( InputStream in , Object root ) ;

xStream.fromXML( Reader reader , Object root ) ;

xStream.fromXML( String xml , Object root ) ;

xStream.fromXML( URL url , Object root ) ;  

(2)toXML()方法

xStream.toXML( Object object ) ;   //返回值String

xStream.toXML( Object object , OutputStream out ); //返回值void

xStream.toXML( Object object , Writer writer );  //返回值void

(3)设置别名
根节点设置别名:参数一:别名 ; 参数二:当前的类名
xstream.alias( “blog” , Product.class ) ;

XStream 解析android项目 asset 文件夹 xml 文件

1. packageupdate.xml

<?xml version="1.0" encoding="utf-8"?>

<result>
    <version>1.0</version>
    <upgradeMode>1</upgradeMode>
    <packages>
        <versionName>1.00.01</versionName>
        <url> <![CDATA[http://www.baidu.com]]></url>
        <level>1</level>
        <size>5550672</size>
        <md5>A48F51DB26DE9EA8492AC5031647E8A2</md5>
        <time>2016-06-27</time>
        <desc> <![CDATA[ 1、修正了有线连接显示问题 ]]> </desc>
    </packages>
</result>

2. Java 实体类

Result.java

package com.sky.xsteamtoparserxml;

/**
 * Created by JerryLiu on 2016/7/19.
 */
public class Result {

    private String version;
    private int upgradeMode;
    private Packages packages;

    public int getUpgradeMode() {
        return upgradeMode;
    }

    public void setUpgradeMode(int upgradeMode) {
        this.upgradeMode = upgradeMode;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public Packages getPackages() {
        return packages;
    }

    public void setPackages(Packages packages) {
        this.packages = packages;
    }
}

package.java

package com.sky.xsteamtoparserxml;

/**
 * Created by JerryLiu on 2016/7/19.
 */
public class Packages {
    private String versionName;
    private String url;
    private int level;
    private int size;
    private String md5;
    private String time;
    private String desc;

    public String getVersionName() {
        return versionName;
    }

    public void setVersionName(String versionName) {
        this.versionName = versionName;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public int getLevel() {
        return level;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    public String getMd5() {
        return md5;
    }

    public void setMd5(String md5) {
        this.md5 = md5;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }
}

3. 实现代码

public class MainActivity extends AppCompatActivity {

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

        String fileName = "packageupdate.xml";
        InputStream in = null;
        try {
            in = getResources().getAssets().open(fileName);
            XStream xStream = new XStream();
            xStream.alias("result", Result.class);
            Result result = (Result) xStream.fromXML(in);
            LogUtils.d("version = " + result.getVersion() + "\nupgradeMode = " + result.getUpgradeMode());
            LogUtils.d(result.getPackages());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

4. 运行结果

 D/LogUtils-/MainActivity.onCreate(MainActivity.java:30): version = 1.0;
 upgradeMode = 1;
 Packages {desc = "  1、修正了有线连接显示问题  ", 
 versionName = "1.00.01", 
 md5 = "A48F51DB26DE9EA8492AC5031647E8A2", 
 url = " http://www.baidu.com", 
 time = "2016-06-27", 
 size = 5550672, 
 level = 1} 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值