Monday, 9 January 2017

XML Processing in Java using JAXP

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;
/**
 * Efficient event based XML parsing using a SAX parser
 */
 class SaxRetrieval {
  /**
   * Parse specified file using Sax Parser.
   * @param fileName
   */
  public static void parseFile(String fileName) {
    try {
      // Instantiate Sax Parser.
      SAXParserFactory factory = SAXParserFactory.newInstance();
      SAXParser saxParser = factory.newSAXParser();
      // Setup handler for Sax Parser.
      DefaultHandler handler = new DefaultHandler() {
boolean employee = false;
        boolean name = false;
        boolean salary = false;
        // Invoked when the Sax Parser hits a start tag.
        public void startElement(String uri, String localName,String qName,
                     Attributes attributes) throws SAXException {
            if (qName.equalsIgnoreCase("EMPLOYEE") ) {
            employee = true;
          }        
          if (qName.equalsIgnoreCase("NAME") ) {
            name = true;
          }
          if (qName.equalsIgnoreCase("SALARY")) {
            salary = true;
          }

        }
       
       
        // Invoked for each text node in a tag.
        public void characters(char ch[], int start, int length) throws SAXException {
       
   if (name && employee) {
System.out.println("Name : " + new String(ch, start, length));
}
         
if (salary) {
System.out.println("Salary : " + new String(ch, start, length));
salary = false;
}
        }

        public void endElement(String uri, String localName,String qName) throws SAXException {
                      if(qName.equalsIgnoreCase("employee")){
                      employee = false;
                      }
if(qName.equalsIgnoreCase("name") ) {
name = false;
}



}
     
      };
     
      saxParser.parse(fileName, handler);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  public static void main(String argv[]) {
    SaxRetrieval.parseFile("activity.xml");


 }
}

No comments:

Post a Comment