Bean 字段生产xml

public class BeansToXml {


public static void main(String args[]) throws Exception{
User user = new User();
user.setName("李四");
user.setSex("男");
user.setPhone("138138");
user.setAddr("北京");
//1.生成xml文件
String  filePath = new BeansToXml().createXml(user);// 根据JavaBean生成Xml文件

//2.读生成的xml文件。
// User b = new BeansToXml().getBeanFromXml(filePath,user);

}




public String createXml(final Object obj) throws Exception{
String clsName = obj.getClass().getSimpleName();


System.out.println(clsName);


// 根据类名生成root
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement(clsName);
root.addComment(obj.getClass().getName() + " 的xml");// 生成注释


// bean属性
Element fieldsElems = root.addElement("fields");
Class cls = obj.getClass();
Field[] fields = cls.getDeclaredFields();
String fieldName = "";
for (Field f : fields) {
f.setAccessible(true);
fieldName = f.getName();
Element element = fieldsElems.addElement(fieldName);
byte[] items = fieldName.getBytes(); // 把字段名第一个大写,以便用getName()方法。
items[0] = (byte) ((char) items[0] - 'a' + 'A');
String upFieldName = new String(items);
// System.out.println(upFieldName);
Method method = cls.getDeclaredMethod("get" + upFieldName);
element.setText((String) method.invoke(obj));
}


// 生成xml
String url = BeansToXml.class.getClassLoader().getResource("//").getPath();
URI uri = new URI(url);//这里是为了 空格路径bug MyEclipse 9 中间有个空格。不用这个会报错找不到文件。
String simpleName = obj.getClass().getSimpleName();

String filename = uri.getPath()+simpleName +".xml";
System.out.println(filename);

XMLWriter writer;
try {
writer = new XMLWriter(new FileWriter(new File(filename)));
writer.write(doc);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}

return filename;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值