Python培訓(xùn) - Python XML 解析
來(lái)源:
奇酷教育 發(fā)表于:
一:首先什么是 XML? XML 指可擴(kuò)展標(biāo)記語(yǔ)言(eXtensible Markup Language)。 你可以通過(guò)本站學(xué)習(xí) XML 教程 XML 被設(shè)計(jì)
一:首先什么是 XML?
XML 指可擴(kuò)展標(biāo)記語(yǔ)言(eXtensible Markup Language)。 你可以通過(guò)本站學(xué)習(xí) XML 教程
XML 被設(shè)計(jì)用來(lái)傳輸和存儲(chǔ)數(shù)據(jù)。
XML 是一套定義語(yǔ)義標(biāo)記的規(guī)則,這些標(biāo)記將文檔分成許多部件并對(duì)這些部件加以標(biāo)識(shí)。
它也是元標(biāo)記語(yǔ)言,即定義了用于定義其他與特定領(lǐng)域有關(guān)的、語(yǔ)義的、結(jié)構(gòu)化的標(biāo)記語(yǔ)言的句法語(yǔ)言。

常見(jiàn)的 XML 編程接口有 DOM 和 SAX,這兩種接口處理 XML 文件的方式不同,當(dāng)然使用場(chǎng)合也不同。
Python 有三種方法解析 XML,SAX,DOM,以及 ElementTree:
1.SAX (simple API for XML )
Python 標(biāo)準(zhǔn)庫(kù)包含 SAX 解析器,SAX 用事件驅(qū)動(dòng)模型,通過(guò)在解析XML的過(guò)程中觸發(fā)一個(gè)個(gè)的事件并調(diào)用用戶定義的回調(diào)函數(shù)來(lái)處理XML文件。
2.DOM(Document Object Model)
將 XML 數(shù)據(jù)在內(nèi)存中解析成一個(gè)樹(shù),通過(guò)對(duì)樹(shù)的操作來(lái)操作XML。
3.ElementTree(元素樹(shù))
ElementTree就像一個(gè)輕量級(jí)的DOM,具有方便友好的API。代碼可用性好,速度快,消耗內(nèi)存少。
重點(diǎn):因DOM需要將XML數(shù)據(jù)映射到內(nèi)存中的樹(shù),一是比較慢,二是比較耗內(nèi)存,而SAX流式讀取XML文件,比較快,占用內(nèi)存少,但需要用戶實(shí)現(xiàn)回調(diào)函數(shù)(handler)。