<website> <pagename="index"title="Home Page"> <h1>Welcome to My home Page</h1> <p>Hi, there. My name is Mr. Gumby, and this is my home page. Here are some of my interests:</p> <ul> <li><ahref="interests/shouting.html">Shouting</a></li> <li><ahref="interests/sleeping.html">Sleeping</a></li> <li><ahref="interests/eating.html">Eating</a></li> </ul> </page> <directoryname="interests"> <pagename="shouting"title="Shouting"> <h1>Mr. Gumby's Shouting Page</h1> <p>...</p> </page> <pagename="sleeping"title="Sleeping"> <h1>Mr. Gumby's Sleeping Page</h1> <p>...</p> </page> <pagename="eating"title="Eating"> <h1>Mr. Gumby's Eating Page</h1> <p>...</p> </page> </directory> </website>
具有多个层次结构,websitepagedirectory 。
对于 XML 的解析,Python 本身提供了支持,有一个 SAX 的解析器进行解析。
创建 HTML 页面
在不考虑目录的情况下,单独解析 XML 中的页面。需要完成的任务:
当处理到 page 开头的,需要创建一个给定名称的文件,并写入合适的 HTML 开头内容,包含页面标题
在每个 page 的结尾,将合适的 HTML 尾部写入到文件,并关闭文件
在 page 的内部,遍历所有的标签和字符不修改,直接写入到文件,但是需要判断这些内容是否在 page 里面,所以需要添加一个变量来判断,同时 HTML 的标签需要尖括号,所以需要重建它们
首先 Dispatcher 类中的 dispatch 方法,它的作用是调用相关方法的,用于分派功能,不同的标签将调用不同的方法,给了一个 prefix 外加标签的名字,如果相关方法没有找到就调用默认的方法(主要是为了处理 page 内部出现的 HTML 标签,避免认为是 XML 的标签而被当作 XML 进行处理)。
评论· · · · · ·