SAX是一種基于事件驅(qū)動(dòng)的API。利用SAX解析XML文檔牽涉到兩個(gè)部分:解析器和事件處理器。解析器負(fù)責(zé)讀取XML文檔,并向事件處理器發(fā)送事件,如元素開始跟元素結(jié)束事件;而事件處理器則負(fù)責(zé)對(duì)事件作出相應(yīng),對(duì)傳遞的XML數(shù)據(jù)進(jìn)行處理。
實(shí)例:
import? sys, string from? xml.sax import? handler, make_parser
?
?class? TestHandler(handler.ContentHandler):???????????????????????
???????? def? __init__(self):???????????????????????????????????????????????????????????????
???????????????? pass
????????????????
???????? def? startDocument(self):???????????
???????????????? print? "Document Start ..."
???????????????
??????? def? endDocument(self):????????????????
??????????????? print? "Document End ..."
???????????????
??????? def? startElement(self, name, attrs):
??????????????? print? 'start tag:', name
???????????????
??????? def? endElement(self, name):
??????????????? print? 'end tag:', name????
???????????????
??????? def? characters(self, chrs):????????????????????????????????????????????????????
??????????????? print? chrs
???????????????
????
def? test():????
??????? handler = TestHandler()????
??????? parser = make_parser()????
??????? parser.setContentHandler(handler)
??????? f = open(sys.argv[1], 'r')????
??????? parser.parse(f)????
??????? f.close()
????
if? __name__ == '__main__':
??????? test()
除了DOM外的另一種讀寫文件的方式。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

