论坛首页 Java企业应用论坛

将POJO转化成符合XML格式的字符串

浏览 2587 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-05   最后修改:2008-12-05
OO
环境:MyEclipse6.5 + DOM4J1.6.1

POJO如下:
package util.bean;
public class UserExtendInfo {	
	private String userName;
	
	private String mobilePhone;
	
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getMobilePhone() {
		return mobilePhone;
	}
	public void setMobilePhone(String mobilePhone) {
		this.mobilePhone = mobilePhone;
	}
}

UserExtendInfo user = new UserExtendInfo();
user.setMobilePhone("1234567");
user.setUserName("Ted Mosby");


转化成的XML字符串:
<?xml version="1.0" encoding="UTF-8"?>
<ResponseMessage>
<UserName>Ted Mosby</UserName>
<MobilePhone>1234567</MobilePhone>
</ResponseMessage>
注:不讲究输出格式。

源码:
package cn.com.test;

import java.lang.reflect.Field;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import util.bean.UserExtendInfo;

public class Test {
	public static void main(String[] args) {
		UserExtendInfo user = new UserExtendInfo();
		user.setMobilePhone("1234567");
		user.setUserName("Ted Mosby");
		
		Field[] fieldArray = user.getClass().getDeclaredFields();
		Document document = DocumentHelper.createDocument();
                //新增根节点<ResponseMessage></ResponseMessage>
		Element rootElement = document.addElement("ResponseMessage");
		String name = null;
		String text = null;
		for(Field field : fieldArray) {
			name = field.getName();
                        //将首字母大写
			name = name.substring(0, 1).toUpperCase()+name.substring(1);
			//禁止Java访问权限检查,使能够访问private修饰的属性变量
			field.setAccessible(true);
			try{
				text = field.get(user).toString();
			}catch(IllegalAccessException ilae) {
				System.out.println(ilae.getMessage());
			}
			rootElement.addElement(name).setText(text);
		}
		System.out.println(document.asXML());
	}

}

   发表时间:2008-12-05  
有开源的直接用吧
0 请登录后投票
   发表时间:2008-12-05  
这个问题很多的
1。 XML版本的支持, string可能包含xml 1.0版本无法兼容的东西
2。 一个是xml转义的支持。

我是自己写了xml<=>pojo的过程, 另外是,所有open source目前都发现一些严重的问题, 很不舒服, 最后才菠菜众长,自己搞。
0 请登录后投票
   发表时间:2008-12-26  
什么都自己搞,累死了,xtream 就很不错
0 请登录后投票
   发表时间:2008-12-26  
唉.......用jaxb吧.....
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics