|
NOTE:
These slides have not been updated since 2003. They have been superseded by the book
Anders Møller and Michael Schwartzbach, February 2006 |
|
| THE XML REVOLUTION - TECHNOLOGIES FOR THE FUTURE WEB |
|
import java.io.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.apache.xerces.parsers.SAXParser;
public class Trace extends DefaultHandler {
int indent;
void printIndent() {
for (int i=0; i<indent; i++) System.out.print("-");
}
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 attributes) {
printIndent();
System.out.println("starting element: " + qName);
indent++;
}
public void endElement(String uri, String localName,
String qName) {
indent--;
printIndent();
System.out.println("end element: " + qName);
}
public void ignorableWhitespace(char[] ch, int start, int length) {
printIndent();
System.out.println("whitespace, length " + length);
}
public void processingInstruction(String target, String data) {
printIndent();
System.out.println("processing instruction: " + target);
}
public void characters(char[] ch, int start, int length){
printIndent();
System.out.println("character data, length " + length);
}
public static void main(String[] args) {
Trace t = new Trace();
SAXParser p = new SAXParser();
p.setContentHandler(t);
try { p.parse(args[0]); }
catch (Exception e) {e.printStackTrace();}
}
}
|
The output is (abbreviated with ...):
start document processing instruction: dsd starting element: collection -character data, length 3 -starting element: description --character data, length 47 -end element: description -character data, length 3 -starting element: recipe --character data, length 5 ... -end element: recipe -character data, length 1 end element: collection end document |
|
| COPYRIGHT © 2000-2003 ANDERS MØLLER & MICHAEL I. SCHWARTZBACH |
|