[Python] 判斷 XML Element 是否存在不能用 "if element:"
今天遇到一個詭異的問題…有一個 XML 檔案長像下面這樣:
<xml> <data>xxx</data> </xml>
用 python 讀取之後,用下面的程式判斷 data 是否存在,
結果居然印出了 not exist:
>>> import xml.etree.cElementTree as ET >>> root = ET.fromstring(open("test.xml", "r").read()) >>> print "exist" if root.find("data") else "not exist" not exist
真是詭異了,data 這個元素明明就存在呀?!
……
查了一下 xml.etree.ElementTree — The ElementTree XML API 才真相大白,
原來「元素不存在」或者是「元素下面不包含任何的子元素」的話,bool() 都會算是 False…
因此想正確判斷元素是否存在,得用 is not None 來判斷才行:
>>> print "exist" if root.find("data") is not None else "not exist" exist
發現要熟悉一個語言,還是得花很多的時間來踩雷才行呀 =_=…
(本頁面已被瀏覽過 861 次)