转载:https://www.cnblogs.com/zhaoyanjun/p/4570290.html
一、使用xstream
XStream是一个开源项目,一套简单实用的类库,用于序列化对象与XML对象之间的相互转换。
将XML文件内容解析为一个对象或将一个对象序列化为XML文件。
1、下载工具xstream
下载最新版本地址:https://nexus.codehaus.org/content/repositories/releases/com/thoughtworks/xstream/
下载完成后把jar包导入到自己的android项目中
2、常用的方法:
(1)fromXML()方法返回值是Object
xStream.fromXML(Filefile);
xStream.fromXML(InputStreamin);
xStream.fromXML(Readerreader);
xStream.fromXML(Stringxml);
xStream.fromXML(URLurl);
xStream.fromXML(Filefile,Objectroot);
xStream.fromXML(InputStreamin,Objectroot);
xStream.fromXML(Readerreader,Objectroot);
xStream.fromXML(Stringxml,Objectroot);
xStream.fromXML(URLurl,Objectroot);
(2)toXML()方法
xStream.toXML(Objectobject);//返回值String
xStream.toXML(Objectobject,OutputStreamout);//返回值void
xStream.toXML(Objectobject,Writerwriter);//返回值void
(3)设置别名
根节点设置别名:参数一:别名;参数二:当前的类名
xstream.alias("blog",Product.class);
属性节点设置别名:参数一:别名;参数二:当前的类名;参数三:原来的节点名
xstream.aliasField("blogName",Person.class,"pName");
3、案例
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView( R.layout.activity_main );
//得到资源中的数据流
String fileName = "aa.xml" ; //文件名字
try {
InputStream in = getResources().getAssets().open( fileName ) ;
XStream xstream = new XStream() ;
xstream.alias( "product" , Product.class ); //这里的product一定要和 xml文件中的 product 保持一直,否则会报错的.
Product product = (Product) xstream.fromXML( in );
System.out.println("sss " + product.getName() + product.getAge() );
} catch (IOException e) {
e.printStackTrace();
}
}
}