2016-11-10 2 views
0

Ich habe unten Dokument, das wir dieses Dokument zu unter in Tag hinzufügen möchten.Dokument zu neuem Wurzelelement hinzugefügt

Aktuelles Dokument

<Order> 
</Order> 

Erwartung Dokument

<NewDoc> 
    <Order> 
    </Order> 
</NewDoc> 

ich unten Code versucht haben (ohne Glück):

orderNewDoc.appendChild(orderOldDoc); 

Jede Hilfe würde geschätzt.

Antwort

0

Eine einfache Art und Weise durch DOM tun

/** 
* Created by RGOVIND on 11/10/2016. 
*/ 
import java.io.ByteArrayInputStream; 
import java.io.InputStream; 
import java.io.OutputStreamWriter; 
import java.io.Writer; 
import java.nio.charset.StandardCharsets; 

import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.transform.Transformer; 
import javax.xml.transform.TransformerFactory; 
import javax.xml.transform.dom.DOMSource; 
import javax.xml.transform.stream.StreamResult; 

import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.Node; 
public class XMLRootAdd { 
    public static void main(String[] args) throws Exception 
    { 
     String xml = "<Order></Order>"; 
     InputStream iStream = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)); 

     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder builder = factory.newDocumentBuilder(); 

     Document orderDoc = builder.parse(iStream); 
     Node oldOrderNode = orderDoc.getDocumentElement(); 
     Document newDocument = builder.newDocument(); 
     Element newRoot = newDocument.createElement("NewDoc"); 
     newDocument.appendChild(newRoot); 
     newRoot.appendChild(newDocument.importNode(oldOrderNode, true)); 

     /*Print and test*/ 
     DOMSource domSource = new DOMSource(newDocument); 
     Writer writer = new OutputStreamWriter(System.out); 
     StreamResult result = new StreamResult(writer); 
     TransformerFactory tf = TransformerFactory.newInstance(); 
     Transformer transformer = tf.newTransformer(); 
     transformer.transform(domSource, result); 
     writer.flush(); 

    } 
} 

Drucke wie folgt lautet:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><NewDoc><Order/></NewDoc> 
+0

Hallo Ramachandran GAI versucht haben, dieser seine nicht \t Knoten oldOrderNode = OldoutDoc.getDocumentElement Arbeits() ; newDoc.appendChild (newDoc.importNode (oldOrderNode, true)); ist ihr irgendein Fehler darin ??? – user3659699

Verwandte Themen