新聞中心
SAX(simple API for XML)是一種XML解析的替代方法。相比于DOM,SAX是一種速度更快,更有效的方法。它逐行掃描文檔,一邊掃描一邊解析。

解析器負(fù)責(zé)讀取 XML 文檔,并向事件處理器發(fā)送事件,如元素開始跟元素結(jié)束事件。
而事件處理器則負(fù)責(zé)對(duì)事件作出響應(yīng),對(duì)傳遞的 XML 數(shù)據(jù)進(jìn)行處理。
1、對(duì)大型文件進(jìn)行處理;
2、只需要文件的部分內(nèi)容,或者只需從文件中得到特定信息。
3、想建立自己的對(duì)象模型的時(shí)候。
在 Python 中使用 sax 方式處理 xml 要先引入 xml.sax 中的 parse 函數(shù),還有 xml.sax.handler 中的 ContentHandler。
ContentHandler 類方法介紹
characters(content) 方法
調(diào)用時(shí)機(jī):
從行開始,遇到標(biāo)簽之前,存在字符,content 的值為這些字符串。
從一個(gè)標(biāo)簽,遇到下一個(gè)標(biāo)簽之前, 存在字符,content 的值為這些字符串。
從一個(gè)標(biāo)簽,遇到行結(jié)束符之前,存在字符,content 的值為這些字符串。
標(biāo)簽可以是開始標(biāo)簽,也可以是結(jié)束標(biāo)簽。
startDocument() 方法
文檔啟動(dòng)的時(shí)候調(diào)用。
endDocument() 方法
解析器到達(dá)文檔結(jié)尾時(shí)調(diào)用。
startElement(name, attrs) 方法
遇到XML開始標(biāo)簽時(shí)調(diào)用,name 是標(biāo)簽的名字,attrs 是標(biāo)簽的屬性值字典。
endElement(name) 方法
遇到XML結(jié)束標(biāo)簽時(shí)調(diào)用。
make_parser 方法
以下方法創(chuàng)建一個(gè)新的解析器對(duì)象并返回。
xml.sax.make_parser( [parser_list] )
參數(shù)說(shuō)明:
parser_list - 可選參數(shù),解析器列表
parser 方法
以下方法創(chuàng)建一個(gè) SAX 解析器并解析xml文檔:
xml.sax.parse( xmlfile, contenthandler[, errorhandler])
參數(shù)說(shuō)明:
xmlfile – xml文件名
contenthandler – 必須是一個(gè) ContentHandler 的對(duì)象
errorhandler – 如果指定該參數(shù),errorhandler 必須是一個(gè) SAX ErrorHandler 對(duì)象
parseString 方法
parseString 方法創(chuàng)建一個(gè) XML 解析器并解析 xml 字符串:
xml.sax.parseString(xmlstring, contenthandler[, errorhandler])
參數(shù)說(shuō)明:
xmlstring – xml字符串
contenthandler – 必須是一個(gè) ContentHandler 的對(duì)象
errorhandler – 如果指定該參數(shù),errorhandler 必須是一個(gè) SAX ErrorHandler對(duì)象
本文名稱:Python中通過SAX解析XML
標(biāo)題鏈接:http://m.fisionsoft.com.cn/article/dppcocs.html


咨詢
建站咨詢
