PythonXML檔案解析

2021-08-20 18:41:31 字數 2188 閱讀 2917

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...