SAX Parser action
In this chapter you will learn:
SAX parer with all its action displayed
SAX stands for Simple API for XML. It is an event-based sequential access parser API. SAX Parser provides a mechanism for reading data from an XML document alternative to Document Object Model (DOM). Where the DOM operates on the document as a whole, SAX parsers operate on each piece of the XML document sequentially.
The following code prints out all SAX parser actions.
The core function is
done by TrySAX
class which extends
DefaultHandler
.
Each method in DefaultHandler
is for call back, which
means if the SAX parser encounter the starting tag, it will call
startDocument()
method.
import java.io.StringReader;
/* ja v a 2s . co m*/
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.helpers.DefaultHandler;
class TrySAX extends DefaultHandler {
public void startDocument() {
System.out.println("Start document: ");
}
public void endDocument() {
System.out.println("End document: ");
}
public void startElement(String uri, String localName, String qname,
Attributes attr) {
System.out.println("Start element: local name: " + localName + " qname: "
+ qname + " uri: " + uri);
}
public void endElement(String uri, String localName, String qname) {
System.out.println("End element: local name: " + localName + " qname: "
+ qname + " uri: " + uri);
}
public void characters(char[] ch, int start, int length) {
System.out.println("Characters: " + new String(ch, start, length));
}
public void ignorableWhitespace(char[] ch, int start, int length) {
System.out.println("Ignorable whitespace: " + new String(ch, start, length));
}
}
public class Main {
public static void main(String args[]) throws Exception {
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xmlRecords));
DefaultHandler handler = new TrySAX();
process(is, handler);
}
private static void process(InputSource file, DefaultHandler handler)
throws Exception {
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
spf.setValidating(true);
SAXParser parser = spf.newSAXParser();
parser.parse(file, handler);
}
static String xmlRecords =
"<data>" +
" <employee>" +
" <name>Tom</name>"+
" <title>Manager</title>" +
" </employee>" +
" <employee>" +
" <name>Jerry</name>"+
" <title>Programmer</title>" +
" </employee>" +
"</data>";
}
The code above generates the following result.
Next chapter...
What you will learn in the next chapter:
Home » Java Tutorial » XML