回覆列表
-
1 # 小小猿愛嘻嘻
-
2 # Bean蠶豆
個人接觸過ElementTree,就簡單介紹一下這個包。ElementTree是python中常用處理xml檔案的類。
引用方法import xml.etree.ElementTree as ET
解析XML讀取xml
import xml.etree.ElementTree as ET
tree = ET.parse(filename)
root = tree.getroot()
root = ET.fromstring(string)
檢視tag和attribute
root.tag
root.attrib
for child in root:
print child.tag,child.attrib
使用下標訪問
root[i].tag
使用tag名稱訪問
Element.iter()
Element.findall()
Element.find()
支援xpath,xpath是xml語言中語法結構, 解析起來就更加直觀化。
這裡介紹2種python解析xml檔案的方式,一種基於SAX事件驅動的方式,一種基於DOM樹的方式,下面我大概介紹一下過程,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
為了會更好的說明問題,這裡我新建了一個test.xml檔案,主要內容如下,很簡單:
1.SAX解析xml:SAX是一種快速的解析xml檔案方式,在解析xml檔案時,不會佔用大量記憶體,透過觸發一個個事件來呼叫使用者的回撥函式處理xml檔案,測試程式碼如下,主要是繼承ContentHandler類,並對startElement,endElement,characters這3個方法重寫:
程式執行截圖如下,已經成功解析出xml檔案資訊:
2.DOM解析xml檔案:這種方式比較簡單,好理解,在記憶體中將xml檔案解析成一個樹,透過對樹的解析來操作xml檔案,缺點是佔用記憶體,速度慢,測試程式碼如下,按著xml檔案結構解析就行:
程式執行截圖如下,已經成功解析出xml檔案:
至此,我們就完成了利用python來解析xml檔案。總的來說,整個過程很簡單,就是基於SAX和DOM這2種方式,只要你有一定的python基礎,多加練習,很快就能掌握的,網上也有相關資料和教程,感興趣的可以搜一下,希望以上分享的內容能對你有所幫助吧。