根据类名反射得到其属性及属性值,属性为XML标签,属性值为XML标签值。

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.List;
/**
* 根据反射生成XML
* @author 喻克
*
*/
public class ObjectToXml {
/**
* 根据类名反射得到其属性及属性值
* 属性为XML标签,属性值为XML标签值
* @param object
* @return String
* @throws Exception
*/
public static String ObjecttoXML(Object object) throws Exception {
Class<? extends Object> classType = object.getClass();
//属性集合
Field[] fields = classType.getDeclaredFields();
String xml = "";
for (Field field : fields) {
String fieldName = field.getName();//属性名称
String stringLetter = fieldName.substring(0, 1).toUpperCase();
// 获得object对象相应的get方法
String getName = "get" + stringLetter + fieldName.substring(1);
// 获取相应的方法
Method getMethod = classType.getMethod(getName, new Class[] {});
// 调用源对象的get方法的值
Object getValue = getMethod.invoke(object, new Object[] {});
if (null == getValue) {
getValue = "";
}
xml += "<" + fieldName + ">" + getValue + "</" + fieldName + ">";
}
xml ="<object>" +  xml + "</object>";
return xml;
}
/**
* 根据类名反射得到其属性及属性值
* 属性为XML标签,属性值为XML标签值
* @param objectList
* @return String
* @throws Exception
*/
public static String ObjecttoXML(List<Object> objectList) throws Exception {
String xml = "";
xml += "<objects>";
for (int i = 0; i < objectList.size(); i++) {
Object object = objectList.get(i);
Class<? extends Object> classType = object.getClass();
Field[] fields = classType.getDeclaredFields();
xml += "<object>";
for (Field field : fields) {
String fieldName = field.getName();
String stringLetter = fieldName.substring(0, 1).toUpperCase();
String getName = "get" + stringLetter + fieldName.substring(1);
Method getMethod = classType.getMethod(getName, new Class[] {});
Object getValue = getMethod.invoke(object, new Object[] {});
if (null == getValue) {
getValue = "";
}
xml += "<" + fieldName + ">" + getValue + "</" + fieldName + ">";
}
xml += "</object>";
}
xml += "</objects>";
return xml;
}
}