Merging xml file using java NodeList

后端 未结 3 1191
悲&欢浪女
悲&欢浪女 2020-12-06 12:20

I\'m trying to merge two xml files as shown below but i can\'t able to get the desired output please help me thank you

Java code:

DocumentBuilderFac         


        
3条回答
  •  [愿得一人]
    2020-12-06 12:55

    In order to do that on your own. You should do this following :

    public static void mergeXML(){
    
    
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = null;
        Document doc = null;
        Document doc2 = null;
    
        try {
                db = dbf.newDocumentBuilder();
                doc = db.parse(new File("D:\\Loic_Workspace\\Test2\\res\\test.xml"));
                doc2 = db.parse(new File("D:\\Loic_Workspace\\Test2\\res\\test2.xml"));
                NodeList ndListFirstFile = doc.getElementsByTagName("staff");
    
                Node nodeArea = doc.importNode(doc2.getElementsByTagName("area").item(0), true);
                Node nodeCity = doc.importNode(doc2.getElementsByTagName("city").item(0), true);
                ndListFirstFile.item(0).appendChild(nodeArea);
                ndListFirstFile.item(0).appendChild(nodeCity);
    
              TransformerFactory tFactory = TransformerFactory.newInstance();
              Transformer transformer = tFactory.newTransformer();
              transformer.setOutputProperty(OutputKeys.INDENT, "yes");  
    
              DOMSource source = new DOMSource(doc);
              StreamResult result = new StreamResult(new StringWriter());
              transformer.transform(source, result); 
    
              Writer output = new BufferedWriter(new FileWriter("D:\\Loic_Workspace\\Test2\\res\\testFinal.xml"));
              String xmlOutput = result.getWriter().toString();  
              output.write(xmlOutput);
              output.close();
    
        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SAXException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (TransformerException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    
    
    }
    

    Final output of testFinal.xml :

        
    
     
     john
     465456433
     gmail1
     area1
    city1
    
     
    

    As you want it ;-)

    Hope it helps,

提交回复
热议问题