java-w3c.document生成xml文件

案例

    /**
     * 创建和写入xml
     * @param xmlrootname
     * @param waitConverList
     */
    private void createAndWriterXML(String xmlrootname,Map<String ,BaseModel> waitConverList){
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
        DocumentBuilder builder = null ;
        try {
            builder = factory.newDocumentBuilder();
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        }
        if( builder == null ) return ;
        Document  document = builder.newDocument();  
        Element root = document.createElement(xmlrootname);   //创建根节点  
        document.appendChild(root);  

        Map<String,TableXml> xmlTableMap = InitTableInfo.getXmlTableMap();
        for (String tablename: waitConverList.keySet()) {
            TableXml xml = xmlTableMap.get(tablename);
            if(xml == null )continue;
            BaseModel baseModel = waitConverList.get(tablename);
            if( baseModel == null )continue;
            HashMap<String, Object> map = ConverUtils.converBeanToMap(baseModel);
            
            Element item = document.createElement(xml.getValue());  
            root.appendChild(item);
            if( map != null && map.size()>0 ){
                Map<String,String> columnMap = xml.getColumnMap();
                for (String key : columnMap.keySet()) {
                    if(StringUtils.isBlank(key))continue;
                    Element childItem = document.createElement(columnMap.get(key));  
                    Object ob = map.get(key.toUpperCase());
                    childItem.appendChild(document.createTextNode(ob==null?"":ob.toString()));  
                    item.appendChild(childItem);
                }
            }
        }
          
        //将DOM对象document写入到xml文件中  
        TransformerFactory tf = TransformerFactory.newInstance();  
        try {  
            Transformer transformer = tf.newTransformer();  
            DOMSource source = new DOMSource(document);  
            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");  
            transformer.setOutputProperty(OutputKeys.VERSION, "1.0");  
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");  
            PrintWriter pw = new PrintWriter(new FileOutputStream("C:\\Users\\huage\\Desktop\\o\\"+xmlrootname+".xml"));  
            StreamResult result = new StreamResult(pw);  
            transformer.transform(source, result);     //关键转换  
        } catch (Exception e) {  
            e.printStackTrace();
        }  
        
    }
    

 

posted @ 2016-08-25 16:00  243573295  阅读(684)  评论(0编辑  收藏  举报