我正在寫一個腳本,它將在具有python 2.6或python 2.7的機器上運行。該腳本解析,並通過installed.xml這樣的循環:Python - 可能爲了向後兼容性而重命名xml.etree.ElementTree.iter()?
tree = ET.parse('installed.xml')
root = tree.getroot()
for package in root.iter('package'):
if 'foo' in package.attrib['id'].lower():
for property in package.iter('property'):
if 'cic.info.version' in property.attrib['name']:
version = property.attrib['value']
這正常的2.7,但在2.6我得到的和錯誤 - _ElementInterface實例沒有屬性「ITER」 我已經想通了,在2.6該方法被稱爲「getiterator」,所以我想知道是否有分配的別名法的方式進行,這樣的事情..
if cur_python < req_python:
xml.etree.ElementTree.iter() = xml.etree.ElementTree.getiterator()
我試過,我發現放在這裏的幾件事情,但couldn還沒有任何工作。任何幫助將不勝感激!
'xml.etree.ElementTree.iter()= xml.etree.ElementTree .getiterator()'不起作用,'xml.etree.ElementTree.iter = xml.etree.ElementTree.getiterator'也不行。你必須爲每個實例('root'和'package')做這件事。也許定義一個包裝和改變你的代碼... –