To clone an XML document at runtime, use the StAX XMLEventReader and XMLEventWriter classes like this:
//AirWings_order.xml - the original XML in this example//AirWings_order_clone.xml - the clone of AirWings_order.xmlimport javax.xml.stream.*;import java.io.*;public class StAXBasicEventWriter_clone{ public StAXBasicEventWriter_clone(){} public static void main(String[] args) { XMLInputFactory XMLif=null; XMLOutputFactory XMLof=null; XMLEventReader XMLer=null; XMLEventWriter XMLew=null; System.setProperty("javax.xml.stream.XMLInputFactory", "com.sun.xml.stream.ZephyrParserFactory"); System.setProperty("javax.xml.stream.XMLOutputFactory", "com.sun.xml.stream.ZephyrWriterFactory"); //get the XMLInputFactory and XMLOutputFactory objects XMLif=XMLInputFactory.newInstance(); XMLof=XMLOutputFactory.newInstance(); //get the XMLEventReader and XMLEventWriter objects try{ XMLer=XMLif.createXMLEventReader ("file:///C://Data_Local//xml//docs//", new FileReader ("C://Data_local//xml//docs//AirWings_order.xml")); XMLew=XMLof.createXMLEventWriter( new FileWriter ("C://Data_local//xml//docs//AirWings_order_clone.xml")); }catch(java.io.IOException e) {System.out.println(e.getMessage()); }catch(javax.xml.stream.XMLStreamException e) {System.out.println(e.getMessage());} //generate the XML document try{ XMLew.add(XMLer); //clean up XMLew.close(); XMLer.close(); }catch(javax.xml.stream.XMLStreamException e) {System.out.println(e.getMessage());} } }