Parse an XML file with SAX parser
In this chapter you will learn:
Parse a file
We can pass in file directly to SAX parser and get the XML file parsed.
import java.io.File;
//from java2 s . c o m
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.DefaultHandler;
public class Main {
public static void main(String args[]) throws Exception {
File xmlFile = new File("data.xml");
DefaultHandler handler = new TrySAX();
process(xmlFile, handler);
}
private static void process(File file, DefaultHandler handler)
throws Exception {
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
spf.setValidating(true);
SAXParser parser = spf.newSAXParser();
parser.parse(file, handler);
}
}
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));
}
}
Here is the data.xml file.
<data>/*from jav a 2s . c o m*/
<employee>
<name>Tom</name>
<title>Manager</title>
</employee>
<employee>
<name>Jerry</name>
<title>Programmer</title>
</employee>
</data>
Next chapter...
What you will learn in the next chapter:
Home » Java Tutorial » XML