使用SAX和DOM解析XML
1. 使用SAX解析XML
在大多数情况下,从XML文档中提取信息的最佳方法是使用符合SAX(Simple API for XML)的事件驱动解析器来解析文档。SAX定义了一个标准API,可以在许多不同的底层解析器之上实现。SAX解析方法与大多数HTML解析器有相似之处。当解析器遇到XML元素、文本内容和输入流中的其他重要事件时,它会回调你定义的类中的方法。这种基于相关事件发生时回调方法的事件驱动解析,与图形用户界面(GUI)以及一些优秀的、可扩展的网络框架(如Twisted)中的事件驱动方法类似。事件驱动方法对初学者来说可能不太自然,但它能实现高性能和高可扩展性,非常适合高负载的情况。
1.1 使用SAX的步骤
- 定义一个内容处理类,继承自库中的类并覆盖一些方法。
- 构建一个解析器对象
p,将你定义的类的实例安装为p的处理程序。 - 向
p提供输入流进行解析,p会调用处理程序中的方法来反映文档的结构和内容,处理程序的方法执行特定于应用程序的处理。
1.2 xml.sax包
xml.sax包提供了异常类SAXException及其子类,以支持细粒度的异常处理,还提供了三个函数:
-make_parser(parsers_list=[]):parsers_list