python類庫31[DOM+SAX解析XML和HTML]

來源:互聯網
上載者:User

 

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/

 

完! 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.