apache commons工具类之 betwixt

XML与Java对象之间相互转换。
package commons;

import java.beans.IntrospectionException;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;

import org.apache.commons.betwixt.io.BeanReader;
import org.apache.commons.betwixt.io.BeanWriter;
import org.xml.sax.SAXException;

public class TestBetwixt {
	
	public static void main(String[] args) throws IOException, SAXException{
		
		/**********************************************bean转化Xml*******************************************************/
		// 先创建一个StringWriter,我们将把它写入为一个字符串
		StringWriter outputWriter = new StringWriter();
		// Betwixt在这里仅仅是将Bean写入为一个片断  
		// 所以如果要想完整的XML内容,我们应该写入头格式  
		outputWriter.write("<?xml version='1.0' encoding='UTF-8' ?>\n");  
        // 再创建一个BeanWriter,写入我们的outputWriter
		BeanWriter beanWriter = new BeanWriter(outputWriter);
		// 配置beanWriter
		 beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);  
		 beanWriter.getBindingConfiguration().setMapIDs(false);  
		 beanWriter.enablePrettyPrint();  
		 // 如果这个地方不传入XML的根节点名,Betwixt将自己猜测是什么  
		 // 但是让我们将例子Bean名作为根节点吧  
		 try {
			beanWriter.write("user", new User("csc", 21));
		} catch (IOException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IntrospectionException e) {
			e.printStackTrace();
		}finally{
			//输出结果  
			 System.out.println(outputWriter.toString());  
			 // Betwixt写的是片断而不是一个文档,所以不要自动的关闭掉writers或者streams,  
			//但这里仅仅是一个例子,不会做更多事情,所以可以关掉  
			 try {
				outputWriter.close();
			} catch (IOException e) {
				e.printStackTrace();
			}  
		}
		 
		 /**********************************************bean转化Xml*******************************************************/
		 
		 /**********************************************Xml转化bean*******************************************************/
		 // 先创建一个XML,由于这里仅是作为例子,所以我们硬编码了一段XML内容  
		 StringReader xmlReader = new StringReader("<?xml version='1.0' encoding='UTF-8' ?><user><age>21</age><name>csc</name></user>");
		 // 在创建一个BeanReader
		 BeanReader beanReader = new BeanReader();
		 //配置reader  
		 beanReader.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);  
		 beanReader.getBindingConfiguration().setMapIDs(false);  
		//注册beans,以便betwixt知道XML将要被转化为一个什么Bean  
		 try {
			beanReader.registerBeanClass("user", User.class);
			 //现在我们对XML进行解析  
			 User user = (User) beanReader.parse(xmlReader);  
			 //输出结果  
			 System.out.println(user); 
		} catch (IntrospectionException e) {
			e.printStackTrace();
		}  
		 
		 /**********************************************Xml转化bean*******************************************************/
	}

}



运行结果

<?xml version='1.0' encoding='UTF-8' ?>
  <user>
    <age>21</age>
    <name>csc</name>
  </user>

User [name=csc, age=21]

猜你喜欢

转载自caoshichuan.iteye.com/blog/2311841
今日推荐