Это зависит от того, какую версию вы используете.Если у вас есть ElementTree 1.3+ (включая стандартную библиотеку Python 2.7), вы можете использовать базовое выражение xpath, например, , описанное в документации , например [@attrib='value']
:
x = ElmentTree(file='testdata.xml')
cases = x.findall(".//testcase[@name='VHDL_BUILD_Passthrough'][@classname='TestOne']")
К сожалению, есливы используете более раннюю версию ElementTree (1.2, включенную в стандартную библиотеку для python 2.5 и 2.6), вы не можете использовать это удобство и должны фильтровать себя.
x = ElmentTree(file='testdata.xml')
allcases = x12.findall(".//testcase")
cases = [c for c in allcases if c.get('classname') == 'TestOne' and c.get('name') == 'VHDL_BUILD_Passthrough']