Use LSOutput and LSSerializer to Serialize a DOM Tree

Use LSOutput and LSSerializer to Serialize a DOM Tree

This tip shows you how to use the LSOutput/LSSerializer interfaces (from the DOM Load and Save API) for serialize a DOM tree. Extract the DOM tree with the following basic steps:

//AirWings_xml.xml - the XML document from this example//LSOutput_1.xml - the result of serializationimport javax.xml.parsers.*;import org.w3c.dom.*;import*;import*;class DOM{  DocumentBuilderFactory DBF=null;  DocumentBuilder DB=null;  Document D=null;  DOMImplementationLS DOMiLS=null;  FileOutputStream FOS=null;  public DOM(){}   public void StartSerialization(String XMLdoc)     {     try{        //create a DocumentBuilderFactory object        DBF=DocumentBuilderFactory.newInstance();               //create a DocumentBuilder object        DB=DBF.newDocumentBuilder();               //get the DOM tree        D=DB.parse(new File(XMLdoc));                      }catch(javax.xml.parsers.ParserConfigurationException e)           {System.out.println(e.getMessage());        }catch(org.xml.sax.SAXException e)           {System.out.println(e.getMessage());        }catch( e)           {System.out.println(e.getMessage());}               //testing the support for DOM Load and Save        if((D.getFeature("Core","3.0")!=null)&&             (D.getFeature("LS","3.0")!=null))           {                  DOMiLS=(DOMImplementationLS)(D.getImplementation()).                    getFeature("LS","3.0");           System.out.println("[Using DOM Load and Save]");           }else             {             System.out.println("[DOM Load and Save unsupported]");                         System.exit(0);             }         //get a LSOutput object        LSOutput LSO=DOMiLS.createLSOutput();            //setting the location for storing the result of serialization     try{        FOS=new FileOutputStream(                 "C://Data_Local//xml//docs//LS_output_1.xml");        LSO.setByteStream((OutputStream)FOS);                  }catch( e)          {System.err.println(e.getMessage());}            //get a LSSerializer object        LSSerializer LSS=DOMiLS.createLSSerializer();            //do the serialization        boolean ser=LSS.write(D,LSO);            //publish the result        if(ser)           System.out.println("[Serialization done!]");             else System.out.println("[Serialization failed!]");     try{        FOS.close();        }catch( e)          {System.out.println(e.getMessage());}     } }public class serializationExample{ public static void main(String[] args)  {  DOM t=new DOM();    t.StartSerialization("C://Data_Local//xml//docs//AirWings_xml.xml");  }}
See also  5 Tips for Working With an Onsite Interpreter

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist