Parsing XML Files with SAX

Code Source: http://www.java2s.com/Code/Java/XML/ParsingXMLFileswithSAX.htm

Anonymous inner class description: http://stackoverflow.com/questions/4216093/writing-a-class-while-instantiating-it

The anonymous inner classes is very useful in some situation. For example consider a situation where you need to create the instance of an object without creating subclass of a class and also performing additional tasks such as method overloading

<PHONEBOOK> <PERSON> <NAME>Joe Wang</NAME> <EMAIL>[email protected]</EMAIL> <TELEPHONE>202-999-9999</TELEPHONE> <WEB>www.java2s.com</WEB> </PERSON> <PERSON> <NAME>Karol</name> <EMAIL>[email protected]</EMAIL> <TELEPHONE>306-999-9999</TELEPHONE> <WEB>www.java2s.com</WEB> </PERSON> <PERSON> <NAME>Green</NAME> <EMAIL>[email protected]</EMAIL> <TELEPHONE>202-414-9999</TELEPHONE> <WEB>www.java2s.com</WEB> </PERSON> </PHONEBOOK> 

import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class NameLister { public static void main(String args[]) { if (args.length != 1) { System.err.println("Usage: java NameLister xmlfile.xml"); System.exit(-1); } try { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); DefaultHandler handler = new DefaultHandler() { boolean name = false; public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if (qName.equalsIgnoreCase("NAME")) { name = true; } } public void characters(char ch[], int start, int length) throws SAXException { if (name) { System.out.println("Name: " + new String(ch, start, length)); name = false; } } }; saxParser.parse(args[0], handler); } catch (Exception e) { e.printStackTrace(); } } } 

你可能感兴趣的:(xml,exception,String,Class,attributes,Parsing)