public class SAXTest {
class BookHandler extends DefaultHandler {
private List<String> nameList;
private boolean title = false;
public List<String> getNameList() {
return nameList;
}
@Override
public void startDocument() throws SAXException {
System.out.println("Start parsing document...");
nameList = new ArrayList<String>();
}
@Override
public void endDocument() throws SAXException {
System.out.println("End");
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes atts) throws SAXException {
if (qName.equals("title")) {
title = true;
}
}
@Override
public void endElement(String namespaceURI, String localName,
String qName) throws SAXException {
if (title) {
title = false;
}
}
@Override
public void characters(char[] ch, int start, int length) {
if (title) {
String bookTitle = new String(ch, start, length);
System.out.println("Book title: " + bookTitle);
nameList.add(bookTitle);
}
}
}
public static void main(String[] args) throws SAXException, IOException {
XMLReader parser = XMLReaderFactory.createXMLReader();
BookHandler bookHandler = (new SAXTest()).new BookHandler();
parser.setContentHandler(bookHandler);
parser.parse("books.xml");
System.out.println(bookHandler.getNameList());
}
}