你的位置:首页 > 操作系统

[操作系统]android XMl 解析神奇xstream 六: 把集合list 转化为 XML文档


前言:对xstream不理解的请看:

android

android

android

android

android

 

1、创建JavaBeen

 

package com.android10;public class Person {  String pName ;  String pAge ;    public String getpName() {    return pName;  }  public void setpName(String pName) {    this.pName = pName;  }  public String getpAge() {    return pAge;  }  public void setpAge(String pAge) {    this.pAge = pAge;  } }

 

package com.android10;public class Product {  private String name ;  private String age ;  private Person person ;  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }  public String getAge() {    return age;  }  public void setAge(String age) {    this.age = age;  }  public Person getPerson() {    return person;  }  public void setPerson(Person person) {    this.person = person;  }}

 

package com.android10;import java.util.List;public class ListBean {  private List<Product> root ;  public List<Product> getRoot() {    return root;  }  public void setRoot(List<Product> root) {    this.root = root;  }}


2、主要方法

 

package com.android10;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.util.ArrayList;import java.util.List;import javax.import javax.import javax.import javax.import javax.import javax.import org.import android.app.Activity;import android.os.Bundle;import com.thoughtworks.xstream.XStream;public class MainActivity extends Activity {  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView( R.layout.activity_main );    XStream xstream = new XStream() ;    List<Product> root = getList() ;    //将ListBean中的集合设置空元素,即不显示集合元素标签    xstream.addImplicitCollection( ListBean.class, "root");    xstream.autodetectAnnotations(true);        //设置别名    xstream.alias( "product", Product.class );    //将name设置为父类(Student)的元素的属性    xstream.useAttributeFor( Product.class, "name" );    //把list集合转换成    String  xstream.to//把    XstreamUtil xstreamUtil = new XstreamUtil() ;    xstreamUtil.writeTothis , //把    List<Product> list = new ArrayList<Product>() ;    list = (List<Product>) xstream.from"sss"+ format/**   * 得到数据   * @return   */  private List<Product> getList(){    Person person1 = new Person() ;    person1.setpName( "saliy" ) ;    person1.setpAge( "36" );    Product product1 = new Product() ;    product1.setName( "jhon" ) ;    product1.setAge( "30" );    product1.setPerson( person1 );    Person person2 = new Person() ;    person2.setpName( "saliy02" ) ;    person2.setpAge( "3602" );    Product product2 = new Product() ;    product2.setName( "jhon02" ) ;    product2.setAge( "3002" );    product2.setPerson( person2 );    List<Product> root = new ArrayList<Product>() ;    root.add( product1 ) ;    root.add( product2 ) ;    return root ;  }  /**   * 格式化@param @return   */  public static String formattry{      Transformer serializer= SAXTransformerFactory.newInstance().newTransformer();      serializer.setOutputProperty(OutputKeys.INDENT, "yes");      serializer.setOutputProperty("{http://);      Source =new SAXSource(new InputSource(new ByteArrayInputStream(= new StreamResult(new ByteArrayOutputStream());            serializer.transform(return new String(((ByteArrayOutputStream)res.getOutputStream()).toByteArray());    }catch(Exception e){           return 

 

package com.android10;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import android.content.Context;import android.os.Environment;public class XstreamUtil {  XcallBack xcallBack ;  /**   * 把@param context   * @param str  */  public void writeTo//获取文件路径    String SDPATH = Environment.getExternalStorageDirectory() + "/myfile1. ;    //创建文件    File file = new File( SDPATH ) ;    if( !file.exists() ){      try {        file.createNewFile() ;      } catch (IOException e) {        e.printStackTrace();      }     }    //写入数据    try {      FileOutputStream out = new FileOutputStream( file ) ;      OutputStreamWriter outw = new OutputStreamWriter(out);       try {         outw.write(str);         outw.close();         out.close();         if( xcallBack != null ){          xcallBack.success();         }      } catch (IOException e) {         if( xcallBack != null ){          xcallBack.fail();         }      }     } catch (FileNotFoundException e1) {      e1.printStackTrace();      if( xcallBack != null ){        xcallBack.fail();       }    }  }   //设置监听器  void setXStreamLister( XcallBack xcallBack ){    this.xcallBack = xcallBack ;  }}interface XcallBack{  /**   * 写入成功   */  void success() ;   /**   * 写入失败   */  void fail() ;   }

 

3、运行结果

<list>
  <product name="jhon">
    <age>30</age>
    <person>
      <pAge>36</pAge>
      <pName>saliy</pName>
    </person>
  </product>
  <product name="jhon02">
    <age>3002</age>
    <person>
      <pAge>3602</pAge>
      <pName>saliy02</pName>
    </person>
  </product>
</list>