解决方案 »

  1.   

    private static void genDomFromList(Document document,  
                SendMessage sendMessage) {  
            // TODO Auto-generated method stub  
            ArrayList list = sendMessage.getList();  
            int mode = sendMessage.getMode();  
            String processName = sendMessage.getProcessName();  
            try {  
     
                if ((list != null) && (list.size() > 0)) {  
                    String elementName = list.get(0).getClass().getName();  
                    //访问类中所有的字段  
                    Field[] fields = list.get(0).getClass().getDeclaredFields();  
                    //从配置文件文件中获取根节点名称  
                    Element _root = document.addElement(Props.getInstance()  
                            .getProp("XmlRoot"));  
                    //根节点的第一项为模式  
                    _root.addAttribute("mode", String.valueOf(mode));  
                    // 根节点第二项为类名  
                    _root.addAttribute("objName", elementName);  
                    //根节点第三项为数据库表名  
                    _root.addAttribute("tableName", processName);  
                    //遍历list中所有的类  
                    for (Iterator localIterator = list.iterator(); localIterator  
                            .hasNext();) {  
                        Object item = localIterator.next();  
                        Element elementTemp = _root.addElement(elementName);  
                        //遍历类中的每一项,来确定将类中的值转化为我们所需要的添加入document  
                        for (int i = 0; i < fields.length; i++)  
                            if (!fields[i].getName().equals("serialVersionUID")) {  
                                Element elementTemp1 = elementTemp  
                                        .addElement(fields[i].getName());  
                                boolean accessFlag = fields[i].isAccessible();  
                                fields[i].setAccessible(true);  
                                Object objText = null;  
                                try {  
                                    objText = fields[i].get(item);  
                                } catch (Exception e) {  
                                    log.error("class反射读取失败:", e);  
                                }  
                                if (objText == null)  
                                    elementTemp1.setText("");  
                                else if ((objText instanceof Date)) {  
                                    elementTemp1.setText(DateTool.parseString(  
                                            (Date) objText, null));  
                                } else if (fields[i].getType().getName()  
                                        .equals("[B"))  
                                    elementTemp1.setText(encoder  
                                            .encode((byte[]) objText));  
                                else 
                                    elementTemp1.setText(objText.toString());  
                                fields[i].setAccessible(accessFlag);  
                            }  
                    }  
                }  
            } catch (Exception e) {  
                log.error("list转为dom失败:", e);  
            }  
        } 
      

  2.   

    http://blog.csdn.net/fengchao1000/article/details/6868343