Friday, 25 March 2011

web ex15:-


SOURCE CODE:
SAXParserExample.java
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
    public class SAXParserExample extends DefaultHandler
           {
     List myEmpls;
     private String tempVal;
     //to maintain context
     private Employee tempEmp;
     public SAXParserExample()
            {
                 myEmpls = new ArrayList();
     }
     public void runExample()
{
                 parseDocument();
                 printData();
     }
     private void parseDocument()
 { 
                 //get a factory
                 SAXParserFactory spf = SAXParserFactory.newInstance();
                 try {
                             //get a new instance of parser
                             SAXParser sp = spf.newSAXParser();
                             //parse the file and also register this class for call backs
                             sp.parse("employees.xml", this);
                       }
catch(SAXException se) {se.printStackTrace();}        catch(ParserConfigurationException pce) {pce.printStackTrace();}
catch (IOException ie) {ie.printStackTrace();}
     }

     /**
      * Iterate through the list and print
      * the contents
      */
     private void printData()
     {
           System.out.println("No of Employees '" + myEmpls.size() + "'.");
           Iterator it = myEmpls.iterator();
           while(it.hasNext())
                        {
                      System.out.println(it.next().toString());
                 }
     }
     //Event Handlers
     public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
{
                 //reset
                 tempVal = "";
                 if(qName.equalsIgnoreCase("Employee"))
                 {
                             //create a new instance of employee
                             tempEmp = new Employee();
                             tempEmp.setType(attributes.getValue("type"));
                 }
      }
     public void characters(char[] ch, int start, int length) throws SAXException
     {
                 tempVal = new String(ch,start,length);
     }
public void endElement(String uri, String localName, String qName) throws SAXException
 {
                 if(qName.equalsIgnoreCase("Employee"))
{
                             //add it to the list
                             myEmpls.add(tempEmp);
                            
                 }
else if (qName.equalsIgnoreCase("Name"))
{
                             tempEmp.setName(tempVal);
                 }
else if (qName.equalsIgnoreCase("Id"))
{
                             tempEmp.setId(Integer.parseInt(tempVal));
                 }
else if (qName.equalsIgnoreCase("Age"))
{
                             tempEmp.setAge(Integer.parseInt(tempVal));
                 }
     }
     public static void main(String[] args)
{
                 SAXParserExample spe = new SAXParserExample();
                 spe.runExample();
     }
    
}

Employee.java

public class Employee {
     private String name;
     private int age;
     private int id;
     private String type;
     public Employee(){   
     }
    
     public Employee(String name, int id, int age,String type) {
                 this.name = name;
                 this.age = age;
                 this.id  = id;
                 this.type = type;         
     }
     public int getAge() {
                 return age;
     }
     public void setAge(int age) {
                 this.age = age;
     }
     public int getId() {
                 return id;
     }
     public void setId(int id) {
                 this.id = id;
     }
     public String getName() {
                 return name;
     }
     public void setName(String name) {
                 this.name = name;
     }
     public String getType() {
                 return type;
     }
     public void setType(String type) {
                 this.type = type;
     }         
     public String toString() {
                 StringBuffer sb = new StringBuffer();
                 sb.append("Employee Details - ");
                 sb.append("Name:" + getName());
                 sb.append(", ");
                 sb.append("Type:" + getType());
                 sb.append(", ");
                 sb.append("Id:" + getId());
                 sb.append(", ");
                 sb.append("Age:" + getAge());
                 sb.append(".");
                 return sb.toString();
     }
}

employees.xml

<?xml version="1.0" encoding="UTF-8"?>
<Personnel>
  <Employee type="permanent">
        <Name>Seagull</Name>
        <Id>3674</Id>
        <Age>34</Age>
   </Employee>
  <Employee type="contract">
        <Name>Robin</Name>
        <Id>3675</Id>
        <Age>25</Age>
    </Employee>
  <Employee type="permanent">
        <Name>Crow</Name>
        <Id>3676</Id>
        <Age>28</Age>
    </Employee>
</Personnel>

No comments:

Post a Comment