1.方法
//传入xml字符串 返回的实体类
private ReceiveXmlEntity XMLToEntity(String strXml) throws IOException {
ReceiveXmlEntity msg = null;
try {
if (strXml.length() <= 0 || strXml == null) {
return null;
}
// 将字符串转化为XML文档对象
Document document = DocumentHelper.parseText(strXml);
// 获得文档的根节点
Element root = document.getRootElement();
// 遍历根节点下所有子节点
Iterator<?> iter = root.elementIterator();
// 遍历所有结点
msg = new ReceiveXmlEntity();
// 利用反射机制,调用set方法
// 获取该实体的元类型
Class<?> c = Class.forName("包名.ReceiveXmlEntity");
msg = (ReceiveXmlEntity) c.newInstance();// 创建这个实体的对象
while (iter.hasNext()) {
Element ele = (Element) iter.next();
// 获取set方法中的参数字段(实体类的属性)
Field field = c.getDeclaredField(ele.getName());
// 获取set方法,field.getType())获取它的参数数据类型
Method method = c.getDeclaredMethod("set" + ele.getName(), field.getType());
// 调用set方法
method.invoke(msg, ele.getText());
}
} catch (Exception e) {
e.printStackTrace();
}
return msg;
}
2.实体类
class ReceiveXmlEntity {
private String ToUserName=""; //对应xml的节点,有多少就添加多少;
//省略 get set
}