XML字符串转实体类

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ren365880/article/details/79926626

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
}
展开阅读全文

没有更多推荐了,返回首页