Python培訓(xùn) - Python XML 解析
來源:
奇酷教育 發(fā)表于:
一:首先什么是 XML? XML 指可擴(kuò)展標(biāo)記語言(eXtensible Markup Language)。 你可以通過本站學(xué)習(xí) XML 教程 XML 被設(shè)計
一:首先什么是 XML?
XML 指可擴(kuò)展標(biāo)記語言(eXtensible Markup Language)。 你可以通過本站學(xué)習(xí) XML 教程
XML 被設(shè)計用來傳輸和存儲數(shù)據(jù)。
XML 是一套定義語義標(biāo)記的規(guī)則,這些標(biāo)記將文檔分成許多部件并對這些部件加以標(biāo)識。
它也是元標(biāo)記語言,即定義了用于定義其他與特定領(lǐng)域有關(guān)的、語義的、結(jié)構(gòu)化的標(biāo)記語言的句法語言。
常見的 XML 編程接口有 DOM 和 SAX,這兩種接口處理 XML 文件的方式不同,當(dāng)然使用場合也不同。
Python 有三種方法解析 XML,SAX,DOM,以及 ElementTree:
1.SAX (simple API for XML )
Python 標(biāo)準(zhǔn)庫包含 SAX 解析器,SAX 用事件驅(qū)動模型,通過在解析XML的過程中觸發(fā)一個個的事件并調(diào)用用戶定義的回調(diào)函數(shù)來處理XML文件。
2.DOM(Document Object Model)
將 XML 數(shù)據(jù)在內(nèi)存中解析成一個樹,通過對樹的操作來操作XML。
3.ElementTree(元素樹)
ElementTree就像一個輕量級的DOM,具有方便友好的API。代碼可用性好,速度快,消耗內(nèi)存少。
重點:因DOM需要將XML數(shù)據(jù)映射到內(nèi)存中的樹,一是比較慢,二是比較耗內(nèi)存,而SAX流式讀取XML文件,比較快,占用內(nèi)存少,但需要用戶實現(xiàn)回調(diào)函數(shù)(handler)。