Parser parser = ParserFactory.makeParser(
"com.sun.xml.parser.Parser");
Parser parser = ParserFactory.makeParser(
"com.sun.xml.parser.ValidatingParser");
try {
Parser parser = ParserFactory.makeParser(...);
} catch (Exception e) {
System.out.println("Error: " + e);
}
MyDocumentHandler dh =
new MyDocumentHandler();
parser.setDocumentHandler(dh);
public void startDocument() {
inChapter = false;
inChapterTitle = false;
}
public void startElement(String name,
AttributeList atts) {
if (name.equals("chapter") {
inChapter = true;
} else if (name.equals("title") && inChapter) {
inChapterTitle = true;
}
}
public void endElement(String name) {
if (name.equals("chapter") {
inChapter = false;
} else (name.equals("title") {
inChapterTitle = false;
}
}
public void characters(char ch[], int start, int length) {
String s = new String(ch, start, length);
if (inChapterTitle == true) {
chapterTitle[nextTitle++] = s;
}
}
public void startElement(String name,
AttributeList atts) {
System.out.print("<" + name + " ");
for (int i=0; i<atts.getLength(); i++) {
System.out.print(atts.getName(i) + " = " +
atts.getValue(i));
}
System.out.println(">");
}
import org.xml.sax.*;
import org.xml.sax.helpers.*;
public class CountHandler extends HandlerBase {
protected int numberOfElements = 0;
public void endElement(String name) {
numberElements++;
}
public int getNumberOfElements() {
return numberOfElements;
}
}
import org.xml.sax.*;
import org.xml.sax.helpers.*;
public class Count {
public static void main(String args[]) {
try {
Parser parser = ParserFactory.makeParser(
"com.sun.xml.parser.Parser");
CountHandler ch = new CountHandler();
parser.setDocumentHandler(ch);
parser.parse("http://www.scs.carleton.ca/" +
"~weiss/courses/205/examples/xml/order.xml");
System.out.println("Number of elements: " +
ch.getNumberOfElements());
} catch (Exception e) {
e.printStackTrace();
}
}
}
<purchase>
<customerId>cu12345</customerId>
<items>
<item>
<name>Sony CD Player</name>
<id>cd00100</id>
<quantity>1</quantity>
</item>
<item>
<name>XML and Java</name>
<id>bk10500</id>
<quantity>2</quantity>
</item>
</items>
</purchase>
public class Purchase {
protected String customerId;
protected Vector items;
// constuctors
// getters and setters
}
public class Item {
protected String name;
protected String id;
protected int quantity;
// constuctors
// getters and setters
}
import org.xml.sax.*;
import org.xml.sax.helpers.*;
public class PurchaseHandler extends HandlerBase {
protected boolean inCustomerId = false;
protected boolean inItems = false;
protected boolean inItem = false;
protected boolean inItemName = false;
protected boolean inItemId = false;
protected boolean inItemQuantity = false;
protected Purchase purchase = null;
protected Item item = null;
public Purchase getPurchase() {
return purchase;
}
public void startElement(String name,
AttributeList atts) {
if (name.equals("purchase")) {
purchase = new Purchase();
} else if (name.equals("customerId")) {
inCustomerId = true;
} else if (name.equals("items")) {
inItems = true;
} else if (name.equals("item") && inItems) {
inItem = true;
item = new Item();
} else if (name.equals("name") && inItem) {
inItemName = true;
} else if (name.equals("id") && inItem) {
inItemId = true;
} else if (name.equals("quantity") && inItem) {
inItemQuantity = true;
}
}
public void characters(char ch[], int start,
int length) {
String s = new String(ch, start, length);
if (inCustomerId) {
purchase.setCustomerId(s);
} else if (inItemName) {
item.setName(s);
} else if (inItemId) {
item.setId(s);
} else if (inItemQuantity) {
item.setQuantity(Integer.parseInt(s));
}
}
public void endElement(String name) {
if (name.equals("purchase")) {
// optionally validate purchase
} else if (name.equals("customerId")) {
inCustomerId = false;
} else if (name.equals("items")) {
inItems = false;
} else if (name.equals("item") && inItems) {
inItem = false;
purchase.addItem(item);
} else if (name.equals("name") && inItem) {
inItemName = false;
} else if (name.equals("id") && inItem) {
inItemId = false;
} else if (name.equals("quantity")) {
inItemQuantity = false;
}
}
}
import org.xml.sax.*;
import org.xml.sax.helpers.*;
public class PuchaseTest {
public static void main(String args[]) {
Parser parser;
try {
parser = ParserFactory.makeParser(
"com.sun.xml.parser.Parser");
} catch (ClassNotFoundException e) {
System.err.println("Parser not found: " + e);
} catch (Exception e) {
System.err.println("Error: " + e);
}
PurchaseHandler handler =
new PurchaseHandler();
parser.setDocumentHandler(handler);
try {
parser.parse("http://www.scs.carleton.ca/" +
"~weiss/examples/xml/order.xml");
} catch (SAXParseException e) {
System.err.println("Parse error: " + e);
} catch (SAXException e) {
System.err.println("Error: " + e);
} catch (IOException e) {
System.err.println("Input Error: " + e);
}
}
}