1.目的
如何用XML来表示多种数据,以及如何使用适合XML或SAX的简单API来处理XML文本。目标是通过一个描述各种网页和目录的XML文件生成一个完整的网站。
注:有关XML的描述参见http://www.w3school.com.cn/ ;有关SAX的更多信息参见http://www.saxproject.org
2.问题
本项目要解决的常见问题就是解析(读取和处理)XML文件:因为使用XML几乎能表示任何数据,并且在解析的时候可以随意处理数据
3.实现
3.1验证python版本是否支持SAX语法分析器
>>> from xml.sax import make_parser
>>> parser = make_parser()
执行后没有异常则可以使用 (较新的python版本都支持)
3.2用XML文件表示的简单网站(website.xml)

1 <website> 2 <page name="index" title="Home Page"> 3 <h1>Welcome to My Home Page</h1> 4 5 <p>Hi, there. My name is Mr. Gumby, and this is my home page. Here 6 are some of my interests;</p> 7 8 <ul> 9 <li><a href="interests/shouting.html">Shouting</a></li> 10 <li><a href="interests/sleeping.html">Sleeping</a></li> 11 <li><a href="interests/eating.html">Eating</a></li> 12 </ul> 13 </page> 14 <directory name="interests"> 15 <page name="shouting" title="Shouting"> 16 <h1>Mr Gumby's Shouting Page</h1> 17 18 <p>...</p> 19 </page> 20 <page name="sleeping" title="Sleeping"> 21 <h1>Mr Gumby's Sleeping Page</h1> 22 23 <p>...</p> 24 </page> 25 <page name="eating" title="Eating"> 26 <h1>Mr Gumby's Eating Page</h1> 27 28 <p>...</p> 29 </page> 30 </directory> 31 </website>
本次解析XML采用SAX的方法,包括编写一组时间处理程序,当解析器度XML文档时,就可以让它调用这些处理程序来完成解析
3.2.1创建简单的内容处理程序