sax是一種基於事件驅動的api。
利用sax解析xml文件牽涉到兩個部分:解析器和事件處理器。
解析器負責讀取xml文件,並向事件處理器傳送事件,如元素開始跟元素結束事件;
而事件處理器則負責對事件作出相應,對傳遞的xml資料進行處理。
適於處理下面的問題:
在python中使用sax方式處理xml要先引入xml.sax中的parse函式,還有xml.sax.handler中的contenthandler。
characters(content)方法
呼叫時機:
從行開始,遇到標籤之前,存在字元,content的值為這些字串。
從乙個標籤,遇到下乙個標籤之前, 存在字元,content的值為這些字串。
從乙個標籤,遇到行結束符之前,存在字元,content的值為這些字串。
標籤可以是開始標籤,也可以是結束標籤。
2、startdocument()方法
文件啟動的時候呼叫。
3、enddocument()方法
解析器到達文件結尾時呼叫。
4、startelement(name, attrs)方法
遇到xml開始標籤時呼叫,name是標籤的名字,attrs是標籤的屬性值字典。
5、endelement(name)方法
遇到xml結束標籤時呼叫。
以下方法建立乙個新的解析器物件並返回。
xml引數說明:.sax
.make_parser([
parser_list
])
以下方法建立乙個 sax 解析器並解析xml文件:
xml引數說明:.sax
.parse
(xmlfile
,contenthandler
[,errorhandler
])
parsestring方法建立乙個xml解析器並解析xml字串:
xml引數說明:.sax
.parsestring
(xmlstring
,contenthandler
[,errorhandler
])
檔案物件模型(document object model,簡稱dom),是w3c組織推薦的處理可擴充套件置標語言的標準程式設計介面。
乙個 dom 的解析器在解析乙個 xml 文件時,一次性讀取整個文件,把文件中所有元素儲存在記憶體中的乙個樹結構裡,之後你可以利用dom 提供的不同的函式來讀取或修改文件的內容和結構,也可以把修改過的內容寫入xml檔案。
python中用xml.dom.minidom來解析xml檔案,例項如下:
from xml.dom.minidom import parse
domtree=parse("xmldemo.xml")
conn=domtree.getelementsbytagname("movie")
for i in conn:
title=i.getattribute("title")
print("***************=%s***************="%title)
print("電影型別:",i.getelementsbytagname("type")[0].childnodes[0].data)
print("電影格式:",i.getelementsbytagname("format")[0].childnodes[0].data)
if i.hasattribute("year"):
print("電影發行年份:",i.getelementsbytagname("year")[0].childnodes[0].data)
print("電影rating:",i.getelementsbytagname("rating")[0].childnodes[0].data)
print("電影評星:",i.getelementsbytagname("stars")[0].childnodes[0].data)
print("電影description:",i.getelementsbytagname("description")[0].childnodes[0].data)
print("***************====end********************")
python xml解析例子
coding utf 8 created on thu apr 16 23 18 27 2015 author shifeng 功能 解析cdr sample.xml檔案,輸出格式為dnorm接收的格式,並將訓練集的 label 寫入到文件中 xml檔案 見csdn資源共享 import codec...
學習筆記 Python XML解析
xml.sax 菜鳥教程 官網文件 python由xml包 lib xml 提供對xml的支援。python處理xml主要有兩種模型,xml.dom和xml.sax分別定義了兩種處理模型的介面 the xml handling submodules are 手冊 inte ce section pu...
python xml解析和生成
解析使用xml.etree.elementtree 模組,生成使用xml.dom.minidom模組,elementtree比dom快,dom生成簡單且會自動格式化。xml version 1.0 encoding utf 8 baspools bas basprovider 0 basprovid...