Using StAX to Clone an XML Document

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());}              }       }
Share the Post:
Share on facebook
Share on twitter
Share on linkedin

More From DevX