Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Java
Expertise: Advanced
Jun 2, 2008

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 serialization

import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;
import org.w3c.dom.ls.*;

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(java.io.IOException 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(java.io.FileNotFoundException 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(java.io.IOException 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");
  }
}
Leonard Anghel
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap