XML解析

      在〈XML解析〉中尚無留言

用途

話說JSON在寫法上比較方便, 但遇到大型的文件, 如C# WPF的XAML, Swing的UI Form, 都是以XML的格式儲存. 這些具有複雜的階層關係, 使用JSON是無法讓人輕易的了解.

所以解析XML似乎成了必要的功能. . 那要如何轉換成C#/Java的語言呢, 第一步當然是要先作解析

解析模組

常見解析XML的接口有三個

DOM(Document Object Model) : 將XML解析成一顆樹, 效能差
SAX(Simple API for XML) : 使用事件驅動模型, 效能好, 佔用記憶体少. 但不方便使用
ElementTree(元素樹) : 為上面二個的綜合体, 方便使用, 且效能跟SAX一樣, 且不佔太多的記憶体.

由以上的分析, 盡可能使用ElementTree

Import

在Python 3.3之前, 請使用如下import. cElementTree是使用C語言寫成的, 速度較快. ElementTree則是由純Python寫成. 因有的環境沒有cElementTree, 所以需使用try-except

try:
    import xml.etree.cElementTree as ET
except ImportError:
    import xml.etree.ElementTree as ET

但如果是Python 3.3及以上, 使用如下即可. 它會自動去找cElementTree, 若沒有, 才找ElementTree

import xml.etree.ElementTree as ET

請注意, 開啟新檔案測試時, 檔案名稱千萬別命名為 xml.py, 因為xml.py為系統的套件檔案, xml.etree就是寫在這個檔案裏, 請不要覆蓋這個檔案. 否則會發生 No module named ‘xml.etree’

XML檔案內容

請在專案目錄下新增如下文字檔 index.html

🔒 底下內容僅限會員閱讀。

立即登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *