android xml xstream解析,android XMl 解析神奇xstream 六: 把集合list 转化为 XML文档

packagecom.android10;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.util.ArrayList;importjava.util.List;importjavax.xml.transform.OutputKeys;importjavax.xml.transform.Source;importjavax.xml.transform.Transformer;importjavax.xml.transform.sax.SAXSource;importjavax.xml.transform.sax.SAXTransformerFactory;importjavax.xml.transform.stream.StreamResult;importorg.xml.sax.InputSource;importandroid.app.Activity;importandroid.os.Bundle;importcom.thoughtworks.xstream.XStream;public class MainActivity extendsActivity {

@Overridepublic voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView( R.layout.activity_main );

XStream xstream= newXStream() ;

List root =getList() ;//将ListBean中的集合设置空元素,即不显示集合元素标签

xstream.addImplicitCollection( ListBean.class, "root");

xstream.autodetectAnnotations(true);//设置别名

xstream.alias( "product", Product.class);//将name设置为父类(Student)的元素的属性

xstream.useAttributeFor( Product.class, "name");//把list集合转换成Xml字符串

String xmlString =xstream.toXML( root ) ;//把Xml字符串写入SD卡Xml文件

XstreamUtil xstreamUtil = newXstreamUtil() ;

xstreamUtil.writeToXml(this, xmlString ) ;//把Xml字符串转化成list集合

List list = new ArrayList() ;

list= (List) xstream.fromXML( xmlString ) ;

System.out.println("sss"+formatXml( xmlString ) );

}/*** 得到数据

*@return

*/

private ListgetList(){

Person person1= newPerson() ;

person1.setpName("saliy") ;

person1.setpAge("36");

Product product1= newProduct() ;

product1.setName("jhon") ;

product1.setAge("30");

product1.setPerson( person1 );

Person person2= newPerson() ;

person2.setpName("saliy02") ;

person2.setpAge("3602");

Product product2= newProduct() ;

product2.setName("jhon02") ;

product2.setAge("3002");

product2.setPerson( person2 );

List root = new ArrayList() ;

root.add( product1 ) ;

root.add( product2 ) ;returnroot ;

}/*** 格式化XML字符串

*@paramxml

*@return

*/

public staticString formatXml(String xml){try{

Transformer serializer=SAXTransformerFactory.newInstance().newTransformer();

serializer.setOutputProperty(OutputKeys.INDENT,"yes");

serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");

Source xmlSource=new SAXSource(new InputSource(newByteArrayInputStream(xml.getBytes())));

StreamResult res= new StreamResult(newByteArrayOutputStream());

serializer.transform(xmlSource, res);return newString(((ByteArrayOutputStream)res.getOutputStream()).toByteArray());

}catch(Exception e){returnxml;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值