`
f_zongjian
  • 浏览: 1203 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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

阅读更多
环境: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());
	}

}

分享到:
评论
4 楼 sway 2008-12-26  
唉.......用jaxb吧.....
3 楼 kjj 2008-12-26  
什么都自己搞,累死了,xtream 就很不错
2 楼 sdh5724 2008-12-05  
这个问题很多的
1。 XML版本的支持, string可能包含xml 1.0版本无法兼容的东西
2。 一个是xml转义的支持。

我是自己写了xml<=>pojo的过程, 另外是,所有open source目前都发现一些严重的问题, 很不舒服, 最后才菠菜众长,自己搞。
1 楼 xuyao 2008-12-05  
有开源的直接用吧

相关推荐

    XmlUtil.java

    xml格式字符串与java pojo实体类相互转换工具类

    BANKINGPROJECT

    将消息作为JSON pojo发送到转换器应用程序,以转换为xml字符串 使用Kafka的ReplyingKafkaTemplate同步请求/回复 /资金转移 给定有效的转帐消息,将保留交易并更新两个帐户的余额 请求是否返回状态,是否能够成功发送...

    DWR.xml配置文件说明书(含源码)

    客户端的javascript将返回给reply对象(此时reply是java.util.date的字符串形式) 3.5 The 'scripted' Creator DWR 已经默认配置了scripted creator配置, 这种类型的creator采用BSF执行脚本语言并返回bean.例如 ......

    从Java走向Java+EE+.rar

    20.2 实例——利用EJB转换字符串 301 20.3 小结 307 第21章 Web Service 308 21.1 Web Service基础 308 21.2 实例——利用AXIS开发一个简单的Web Service 310 21.3 小结 314 第22章 Java EE的安全 315 ...

    整理后java开发全套达内学习笔记(含练习)

    System.out.printf() 可插入带 % 的输入类型,前两种只可以插入转义符, 不能插入 % 的数据或字符串 在 printf 里面,输出有5个部分 %[argument_index$][flags][width][.precision]conversion 以“%”开头,[第几个...

    xpom:XPom(XPath到对象映射器)

    XPom(XPath到对象映射) XPom使用带有XPath的简单批注执行各种xml文档到POJO的映射。 它支持以下方面的无缝,即用型数据类型转换: 具有primitive类型的字段: byte, short, int, long, float, double, boolean, ...

    springmybatis

    其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如IUserOperation.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细...

    乐优商城.xmind

    将请求体中的JSON字符串绑定到相应的bean上 修改 Controller @PutMapping service updateByPrimaryKey 删除 Controller @DeleteMapping @PathVariable Param 规格组id查询规格 url:params?gid=14 @...

    play框架手册

    返回一个XML字符串F - 34 - 返回二进制内容 - 34 - 作为附件下载文件 - 34 - 执行一个模板 - 35 - 跳转到其他URL - 36 - Action链 - 36 - 定制web编码 - 37 - 拦截器 - 38 - @Before - 38 - @After - 39 - @Catch - ...

    play framework 框架手册 word 版

    返回一个XML字符串 - 34 - 返回二进制内容 - 34 - 作为附件下载文件 - 34 - 执行一个模板 - 35 - 跳转到其他URL - 36 - Action链 - 36 - 定制web编码 - 37 - 拦截器 - 38 - @Before - 38 - @After - 39 - @Catch - ...

Global site tag (gtag.js) - Google Analytics