解析 xml 格式的檔案有多種方法, 這裡只介紹使用 xml.etree.elementtree 這種解析方式.
elementtree在 python 標準庫中有兩種實現。一種是純 python 實現例如 xml.etree.elementtree ,另外一種是速度快一點的 xml.etree.celementtree 。你要記住: 盡量使用 c 語言實現的那種,因為它速度更快,而且消耗的記憶體更少。
注意: 開發的時候為了除錯方便, 可以使用 elementtree .
匯入包: python3.3之後elementtree模組會自動尋找可用的c庫來加快速度
try:
import
xml.etree.celementtree as et
except
importerror:
import xml.etree.elementtree as et
#從某檔案解析成 xml 物件:
tree_obj = et.parse( "
city_info.xml")
#獲取根節點元素
root = tree_obj.getroot()
#注意: xml 格式開頭的 <?xml version...... 一定不能有空格, 否則報錯!!!
xml_text = """
<?xml version="1.0" encoding="utf-8"?>
homepage.jsp
showlogin.jsp
welcome.jsp
error.jsp
"""#
獲取很節點元素
root = et.fromstring(xml_text)
#xml_text, 即上面的xml字串
root =et.fromstring(xml_text)
for action in root.iter("
action"):
act_name = action.attrib.get("
name
") #
獲取屬性值
class_info = action.get("
class
") #
同樣也是獲取標籤屬性值, 上面的簡寫方式
for result in action.iter("
result"):
res_name = result.get("
name")
res_text = result.text #
獲取標籤文字資訊
find(): 查詢滿足條件的第乙個標籤
findall(): 查詢滿足條件的所有標籤
root =et.fromstring(xml_text)#find() 查詢第乙個標籤
action = root.find("
.//action/result[2]")
print(action.get("
name
")) #
fail
print(action.text) #
result 1.2 result 1.2 result 1.2 result 1.2
#findall() 查詢所有標籤
actions = root.findall("
.//action/result")
for action in
actions:
ac_name = action.get("
name")
ac_text = action.text
Python解析xml檔案
war,thriller 2003 pg10 talk about a us japan war science fiction 1989r8 a schientific fiction action 4 pg10 vash the stampede comedy vhspg 2viewable b...
python 解析xml檔案
et.parser 用法 python3 xml解析模組xml.etree.elementtree簡介 刪除重複xml節點 import xml.etree.elementtree as et 匯入xml模組 root et.parse gho.xml 分析指定xml檔案 tree root.get...
Python 解析XML檔案
python檔案 複製 如下 par ml.py 本例子參考自python聯機文件,做了適當改動和新增 import xml.parsers.expat 控制列印縮排 level 0 獲取某節點名稱及屬性值集合 def start element name,attrs global level pr...