sax的簡單用法
sax (Simple API for XML), 以事件處理爲基礎,按照遇到XML元素的順序讀取XML文檔,觸發處理函數來執行處理。
爲此,我們需要定義自己的處理器(Handler),定義遇到XML元素時,執行什麼樣的處理動作。如startElement()方法,定義了遇到開始tag時,應該做些什麼。以下是示範代碼:
from xml.sax import ContentHandler, parse
class MyHandler(ContentHandler):
def startDocument(self):
pass
def startElement(self, name, attrs):
pass
def endElement(self, name):
pass
def characters(self, content):
pass
def endDocument(self):
pass
parse('sample.xml', MyHandler())
ContentHandler類方法介紹
characters(content)方法
調用時機:
- 從行開始,遇到tag之前,存在字符,content的值爲這些字符串。
- 從一個tag,遇到下一個tag之前, 存在字符,content的值爲這些字符串。
- 從一個tag,遇到行結束符之前,存在字符,content的值爲這些字符串。
tag可以是開始tag,也可以是結束tag。
startDocument()方法
文檔啓動的時候調用。
endDocument()方法
解析器到達文檔結尾時調用。
startElement(name, attrs)方法
遇到XML開始tag時調用,name是tag的名字,attrs是tag的屬性值字典。
endElement(name)方法
遇到XML結束tag時調用。