In most cases, the best way to extract information from an XML document is to parse the document with a parser compliant with SAX, the Simple API for XML. SAX defines a standard API that can be implemented on top of many different underlying parsers. The SAX approach to parsing has similarities to the HTML parsers covered in Chapter 22. As the parser encounters XML elements, text contents, and other significant events in the input stream, the parser calls back to methods of your classes. Such event-driven parsing, based on callbacks to your methods as relevant events occur, also has similarities to the event-driven approach that is almost universal in GUIs and in some networking frameworks. Event-driven approaches in various programming fields may not appear natural to beginners, but enable high performance and particularly high scalability, making them very suitable for high-workload cases.
To use SAX, you define a content handler class, subclassing a library
class and overriding some methods. Then, you build a parser object
p, install an instance of your class as
p’s handler, and feed
p the input stream to parse.
p calls methods on your handler to reflect
the document’s structure and contents. Your
handler’s methods perform application-specific
xml.sax package supplies a factory
function to build
p, as well as
convenience functions for simpler operation in typical cases.
xml.sax also supplies exception classes, used to diagnose invalid input ...