castor对xml、object数据进行换转Demo(一)
javabean对象数据通过castor转换成xml格式数据
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方法略 */@Overridepublic 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>