The following code demonstrates the use of sax parser in JAVA :
main function wherein you initialise the parser and call for parsing the file
custom SAX handler to override the functionality:
sample file:
main function wherein you initialise the parser and call for parsing the file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | /**************************** * author: Aniruddha SN * */ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import customHandler.anrSaxHandler; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; public class XMLParser { public static void main(String args[]) { try { //create an input source for parsing //u can accept the file path as argument, harcoding for example File myfile= new File("c:\\temp\\sample1.xml"); InputStream inputstream= new FileInputStream(myfile); InputStreamReader isr=new InputStreamReader(inputstream); InputSource inputsource=new InputSource(isr); //initialise the sax parser SAXParserFactory saxfact=SAXParserFactory.newInstance(); SAXParser saxparser=saxfact.newSAXParser(); //call parse funstion with a custom sax handler object as input saxparser.parse(inputsource,new anrSaxHandler()); } catch(Exception e) { System.out.println(e.getMessage()); } } } |
custom SAX handler to override the functionality:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | /***************************** * author: Aniruddha S N */ package customHandler; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class anrSaxHandler extends DefaultHandler { //function informs the sax event begining of a new element public void startElement(String uri, String localName,String qName, Attributes attributes) throws SAXException { // u can write ur functionality here //sample functionality to print the element name and its attributes System.out.println("Reading element:"+qName+"\n"); System.out.println("Attributes of the element and their values:\n"); for(int i=0;i<attributes.getLength();i++) { System.out.println(attributes.getLocalName(i)+": "+attributes.getValue(i)+"\n"); } System.out.println("Data:"); } //function informs the occurence of sax event end of an element public void endElement(String uri, String localName, String qName) throws SAXException { //planned action on end of element can be added here //sample functionality forprinting the element name System.out.println("Finished Reading element:"+qName+"\n"); } //function provides the data within a tag public void characters(char ch[], int start, int length) throws SAXException { //sample functionality to store data in a string and print it String data=new String(ch,start, length); System.out.println(""+data+"\n"); } } |
sample file:
Results Of Parsing:
Reading element:catalog Attributes of the element and their values: Data: Reading element:book Attributes of the element and their values: id: bk101 Data: Reading element:author Attributes of the element and their values: Data: Gambardella, Matthew Finished Reading element:author Reading element:title Attributes of the element and their values: Data: XML Developer's Guide Finished Reading element:title Reading element:genre Attributes of the element and their values: Data: Computer Finished Reading element:genre Reading element:price Attributes of the element and their values: Data: 44.95 Finished Reading element:price Reading element:publish_date Attributes of the element and their values: Data: 2000-10-01 Finished Reading element:publish_date Reading element:description Attributes of the element and their values: Data: An in-depth look at creating applications with XML. Finished Reading element:description Finished Reading element:book Finished Reading element:catalog
No comments:
Post a Comment