python类库31[DOM+SAX解析XML和HTML]

 

Standard Generalized Markup Language (SGML)即标准通用标记语言
Hypertext Markup Language (HTML)超文本标识语言

Extensible Markup Language (XML)可扩展标识语言 

 

SGML,HTML,XML 都可以使用以下的SAX和DOM方式来解析  :

SGML是现时常用的超文本格式的最高层次标准,是可以定义标记语言的元语言,甚至可以定义不必采用< >的常规方式。
HTML和XML都是衍生于SGML,HTML是SGML的一个应用,不能用来定义其他的标记语言。
XML可以被认为是SGML的一个子集,XML的产生就是为了简化SGML,以便用于更加通用的目的,比如语义Web。它已经应用于大量的场合,比较著名的有XHTML、RSS、XML-RPC和SOAP。

 

 

一 SAX 与 DOM

SAX (Simple API for XML) 和 DOM (Document Object Model)是处理XML文件的两种方法。
 
SAX是一种基于事件驱动的API。利用SAX解析XML文档牵涉到两个部分:解析器和事件处理器。解析器负责读取XML文档,并向事件处理器发送事件,如元素开始跟元素结束事件;而事件处理器则负责对事件作出相应,对传递的XML数据进行处理。
DOM 可以让你以分层次对象模型来访问储存在XML文档中的信息。DOM生成一棵节点树(以XML文档的结构和信息为基础)你可以通过这棵树来访问你的信息。在XML文档中的文本信息转变成一组树的节点。DOM本质上是节点的集合。

 

通过对SAX与DOM的分析,它们各有自己的不同应用领域。
SAX适于处理下面的问题:
1、对大型文件进行处理;
2、只需要文件的部分内容,或者只需从文件中得到特定信息。
3、想建立自己的对象模型的时候。
DOM适于处理下面的问题:
1、需要对文件进行修改;
2、需要随机对文件进行存取。

 

 

三 解析html的libs:

由于html对语法的要求不是那么的严格,且标签相对固定, 所以相比XML,解析器要求更加智能,且更加方便地处理html的标签。

http://lxml.de/
http://www.crummy.com/software/BeautifulSoup/
http://code.google.com/p/html5lib/

 

完! 


作者:iTech
微信公众号: cicdops
出处:http://itech.cnblogs.com/
github:https://github.com/cicdops/cicdops

posted @ 2011-12-27 15:28  iTech  阅读(1804)  评论(0编辑  收藏  举报