此文紧接上文协程和并发课程【部分一~二】。
第三部分:协程和事件分发
协程还能用于处理事件流,很强大吧!这里作者举的例子是处理 XML 文件,采用的方法是 SAX(Simple API for XML)。下边先简介下 SAX 及其用法。
SAX 简介
SAX(Simple API for XML)跟 DOM 一样也是用于访问 XML 文档的接口,原先只是 Java 上的 API,后来也在其他语言中有实现版本,如 Python 版的 SAX。详细介绍可参考 IBM 的一篇博文使用 SAX 处理 XML 文档。
SAX 是一个事件驱动的接口,这使得它能够增量处理大容量 XML 文件而不用担心内存不足,其模型如下:
一个简单的例子为:
1 | # basicsax.py |