castor对xml、object数据进行换转Demo(一)

[b]javabean对象数据通过castor转换成xml格式数据[/b]

CastorBeanToXmlTest.java
package com.wj.castor;

import java.util.*;
import java.io.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.mapping.Mapping;

/**
*
* 根据bean数据生成xml格式数据
*
* 测试:
* (A):不要Mapping.xml
* (B):加入Mapping.xml进行
*
* @author wjcom
* @version [版本号, 2010-7-28]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class CastorBeanToXmlTest
{
private static final Log LOGGER = LogFactory.getLog(CastorBeanToXmlTest.class);

public static void main(String[] args)
{
/*
* 初始化bean数据
*/
List<Person> beans = new ArrayList<Person>();
Person bean1 = new Person();
bean1.setName("David");
bean1.setSex("女");
bean1.setAge(24);
beans.add(bean1);

Person bean2 = new Person();
bean2.setName("WJ");
bean2.setSex("男");
bean2.setAge(25);
beans.add(bean2);

try
{

/*
* write it out as XML
* 生成xml文档
*/
File file = new File("D:\\eclipse3.5.1\\workspace\\learning\\src\\com\\wj\\castor\\Person1.xml");
Writer writer = new FileWriter(file);

/*
* 加载mapping文件
* 这个地方一定要这样初始化
*/
Marshaller mar = new Marshaller(writer);

Mapping map = new Mapping();
map.loadMapping("D:\\eclipse3.5.1\\workspace\\learning\\src\\com\\wj\\castor\\mapping_beanToxml.xml");
mar.setMapping(map);

/*
* 生成xml文档
*/
mar.marshal(beans);

}
catch (Exception ex)
{
LOGGER.info(ex.getMessage());
}

}

}



Person.java

package com.wj.castor;

/**
* 实体bean
* @author wjcom
*
*/
public class Person
{
/*
* 名次
*/
private String name;

/*
* 性别
*/
private String sex;

/*
* 年龄
*/
private int age;


/**
* set get方法略
*/


@Override
public String toString() {
return "Person [age=" + age + ", name=" + name + ", sex=" + sex + "]";
}


}


mapping_beanToxml.xml
转换规则配置文件如下

<!DOCTYPE databases PUBLIC   
"-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
"http://castor.exolab.org/mapping.dtd">
<mapping>
<description>Basic mapping example</description>
<class name="com.wj.castor.Person" auto-complete="true">
<map-to xml="Person" />

<field name="name">
<bind-xml name="name" node="attribute" />
</field>

<field name="sex">
<bind-xml name="sex" node="attribute" />
</field>

<field name="age">
<bind-xml name="age" node="attribute" />
</field>
</class>
</mapping>


转换生成结果文件person1.xml

<?xml version="1.0" encoding="UTF-8"?>
<array-list>
<Person name="David" sex="女" age="24"/>
<Person name="WJ" sex="男" age="25" />
</array-list>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值