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
Feb 26, 2008

Use Xerces-J to Obtain a Serialized DOM Tree

Suppose you need to serialize a DOM tree, with the result being an XML document. Xerces-J allows you to specify a maximum line length and an indent value. Here's an example:

//the XML document used in this example is:
//"C://Data_local//xml//docs//AirWings_xml.xml"
//The application has two steps:
// 1. - Get the DOM tree of this XML document;
// 2. - Serialize the DOM by using Xerces-J;
// Notice that the indentation is set to 5 characters and the maximum //line length to 100 characters.

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

class DOM{

    DocumentBuilderFactory DBF=null;
    DocumentBuilder DB=null;
    Document D=null;
    FileOutputStream FOS=null;

    public DOM(){}
 
    //get the DOM
    public void createDOMTree(String XMLdoc)
    {
    try{           
       System.setProperty("javax.xml.parsers.DocumentBuilderFactory",                              
                 "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");

    //get a DocumentBuilderFactory object
    DBF=DocumentBuilderFactory.newInstance();
       
    //get a DocumentBuilder object
    DB=DBF.newDocumentBuilder();
       
    //get the DOM tree from the XML document
    D=DB.parse(new File(XMLdoc)); 
                    
    //get a OutputFormat object
    OutputFormat OF=new OutputFormat();
       
    //setting indentation and maximum line length
    OF.setIndent(5);
    OF.setLineWidth(100);
       
    //get an OutputStream object
    try{
       FOS=new FileOutputStream 
        ("C://Data_Local//xml//docs//SerXerces.xml");
       }catch(java.io.FileNotFoundException e)
          {System.err.println(e.getMessage());}
      
    //configure an XMLSerializer object
    XMLSerializer XMLS=new XMLSerializer();
    XMLS.setOutputFormat(OF);
    XMLS.setOutputByteStream((OutputStream)FOS);
      
    //start serialization
    XMLS.serialize(D);
    }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());}   
   } 
}

public class SerializareXerces{
   public static void main(String[] args)
      {
      DOM t=new DOM();    
      t.createDOMTree("C://Data_local//xml//docs//AirWings_xml.xml");
      }
}
Leonard Anghel
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap