// CS 468: Database Management Systems // // SAX Parser Test: content handler class // Alex Dekhtyar import org.xml.sax.*; import org.xml.sax.helpers.*; import java.util.*; // Content Handler Class, extends DefaultHandler, no need to override // every method public class MyContentHandler extends DefaultHandler { Stack elementStack; // declare a stack variable (Stack is in java.util) MyContentHandler() // constructor - use default { super(); } // handler for start document message public void startDocument() { elementStack = new Stack(); System.out.println("Start Document"); return; } // handler for end document message public void endDocument() { System.out.println("End Document"); return; } // handler for content message public void characters(char[] ch, int start, int length) { String tag = elementStack.peek().toString() ; System.out.print("Tag: "); System.out.print(tag); System.out.print(" ----> "); for (int i= start; i< start+length; i++) { System.out.print(ch[i]); } System.out.println(); // System.out.println(start); // System.out.println(length); } // characters public void ignorableWhitespace(char[] ch, int start, int length) { return; } // Handler for opening tag message public void startElement(String namespaceURI, String localName, String qName, Attributes atts) { elementStack.push(qName); System.out.println(qName); } // handler for closing tag message public void endElement(String uri, String localName, String qName) { elementStack.pop(); System.out.print("/"); System.out.println(qName); } }