我正在写一个脚本,它将在具有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')做这件事。也许定义一个包装和改变你的代码... –