不是使用ElementTree Python提取XML文件中每个元素中的子元素

问题描述 投票:0回答:1

我想从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')的元素时,它将显示错误。并且不要继续循环。

我可以知道我需要更改代码的哪一部分。

非常感谢!

python xml elementtree
1个回答
0
投票

尝试将findall('registerFile')更改为findall('registerFile[portid]')

或者也许只是添加一个try / except。

© www.soinside.com 2019 - 2024. All rights reserved.