Standard Generalized Markup Language (SGML)即標準通用標記語言 (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、需要隨機對檔案進行存取。
二 讀寫XMLpython31進階[使用minidom讀寫xml] python31進階[使用xml.etree.ElementTree讀寫xml] python31進階[使用SAX來解析xml]
三 解析html的libs:
由於html對文法的要求不是那麼的嚴格,且標籤相對固定, 所以相比XML,解析器要求更加智能,且更加方便地處理html的標籤。
http://lxml.de/http://www.crummy.com/software/BeautifulSoup/http://code.google.com/p/html5lib/
完!