我想从XML文件中提取数据。但是问题是,我想要的子元素(portid
)不在每个元素中。当它在元素中循环时,我收到错误消息,因为它没有('portid')。
下面是我提取它的代码:
def get_portid_in_registerFile(self):
for element_registerFile in self.crif_parser.getroot().findall('registerFile'):
portid = element_registerFile.find('portid')
print (portid.tag , ':', portid.text)
return portid.tag
输出为:
portid : 0x3A portid : 0x3A portid : 0x4E portid : 0x4E portid : 0x4E
portid : 0x4F portid : 0x4F portid : 0x4F
line 32, in get_portid_in_registerFile
print (portid.tag , ':', portid.text) AttributeError: 'NoneType' object has no attribute 'tag'
如上所述,当元素具有portid时,显示portid。然后,当它循环到没有('portid')的元素时,它将显示错误。并且不要继续循环。
我可以知道我需要更改代码的哪一部分。
非常感谢!
尝试将findall('registerFile')
更改为findall('registerFile[portid]')
。
或者也许只是添加一个try / except。