Python 3 如何在列表中搜索 xml.etree.ElementTree 的子节点以查找字符串

Python 3 How to search children nodes of xml.etree.ElementTree for strings in a list

我想让这个更简单,并且能够搜索变量列表:alarm1、alarm2、alarm3...在 alarmDict.values()

目前我所拥有的有效方法:

import xml.etree.ElementTree as ET 
tree = ET.parse (path.filename) #XML file 
root = tree.getroot()


for child in root:
    alarmDict = child.attrib      #This lists the alarm codes as dicts  
    if 'alarm1' in alarmDict.values(): print ('Contains this alarm', 'alarm1')
    if 'alarm2' in alarmDict.values(): print ('Contains this alarm', 'alarm2')
    if 'alarm3' in alarmDict.values(): print ('Contains this alarm', 'alarm3')

我的目标是:

for child in root:
    alarmDict = child.attrib      #This lists the alarm codes as dicts
    alarm_list = [alarm1, alarm2, alarm3]  
    if alarm_list in alarmDict.values(): print ('Contains this alarm', alarm_list[])

你需要另一个循环:

for child in root:
    alarmDict = child.attrib      #This lists the alarm codes as dicts
    alarm_list = [alarm1, alarm2, alarm3]  
    for alarm in alarm_list:
        if alarm in alarmDict.values():
            print('Contains this alarm', alarm)

如果您想真正深入了解对照另一个列表检查列表内容的最佳方法,我建议您 this answer