现在的位置: 首页 > 综合 > 正文

Java使用XStream将集合类内容序列化为XML

2017年12月02日 ⁄ 综合 ⁄ 共 1776字 ⁄ 字号 评论关闭

最近因工作需要,在研究将Collection 生成xml文件,发现XStream的真的很好用,无需任何配置就可以将

Collection类的内容序列化为XML,下面我就将我的心得和大家分享一下。

 

首先请下载XStream,目前最新版本是1.3.1,下载地址:http://xstream.codehaus.org/download.html

 

请将下载后的jar文件包含到你的工程中。

 

我的javabean内容如下:

package sq_returnclass;

import com.thoughtworks.xstream.annotations.XStreamAlias;

@XStreamAlias("HisKsxx") //请注意这里是设置生成XML文件的二级根元素的别名。
public class HisKsxx implements java.io.Serializable {
 
 private String ksdm;
 private String ksmc;
 private String pydm;
 
 public HisKsxx(Long ksdm,String ksmc,String pydm){
  this.ksdm=ksdm.toString();
  this.ksmc=ksmc;
  this.pydm=pydm;
 }
 
 
 public HisKsxx(String ksdm,String ksmc,String pydm){
  this.ksdm=ksdm;
  this.ksmc=ksmc;
  this.pydm=pydm;
 }
 
 public HisKsxx(){
  
 }
 
 
 public String getKsmc() {
  return ksmc;
 }
 public void setKsmc(String ksmc) {
  this.ksmc = ksmc;
 }
 public String getPydm() {
  return pydm;
 }
 public void setPydm(String pydm) {
  this.pydm = pydm;
 }

 public String getKsdm() {
  return ksdm;
 }

 public void setKsdm(String ksdm) {
  this.ksdm = ksdm;
 }

}

 

从数据库中查询数据并生成XML。

 

public String GetXml() {

 

  Collection<HisKsxx> coll;

  coll = getHibernateTemplate()
    .find( "select new sq_returnclass.HisKsxx(ksdm,ksmc,pydm) from GyKsdm ");

 

  XStream xstream = new XStream();

  Annotations.configureAliases(xstream, HisKsxx.class);
  
  String str;

  str = xstream.toXML(coll);
  
  System.out.println(str);

  return str;

}

 

生成的xml内容如下:

<list>
  <HisKsxx>
    <ksdm>1</ksdm>
    <ksmc>门诊科室</ksmc>
    <pydm>1211</pydm>
  </HisKsxx>
  <HisKsxx>
    <ksdm>4</ksdm>
    <ksmc>病区科室</ksmc>
    <pydm>41</pydm>
  </HisKsxx>
  <HisKsxx>
    <ksdm>5</ksdm>
    <ksmc>医技科室</ksmc>
    <pydm>51</pydm>
  </HisKsxx>
  <HisKsxx>
    <ksdm>6</ksdm>
    <ksmc>行政科室</ksmc>
    <pydm>6</pydm>
  </HisKsxx>
  <HisKsxx>
    <ksdm>7</ksdm>
    <ksmc>后勤科室</ksmc>
    <pydm>7</pydm>
  </HisKsxx>
  <HisKsxx>
    <ksdm>102</ksdm>
    <ksmc>门诊科室</ksmc>
    <pydm>12</pydm>
  </HisKsxx> 

</list>

 

哈哈,完成了,简单吧。

 

 

抱歉!评论已关闭.