仅当内部有特定标签时如何解析 xml

How to parse xml only if specific tag inside

我正在尝试解析 xml 文件并查找汽车名称(在我的示例中),但我需要准确找到定义了颜色标签的汽车名称。 我的 xml 是:

<something>
    <cars>
        <name>Carone</name>
        <model>bmw</model>
    </cars>
    <cars>
        <name>cartwo</name>
        <color>up</color>
        <model>audi</model>
    </cars>
</something>

import xml.etree.ElementTree as ET
car_parse = ET.parse('xml.xml')
res = [events.text for record in car_parse.findall('.//') for events in 
record.findall('name')]
print res

所以我只需要 'cartwo' 在我的 res 列表中,因为颜色是在汽车标签下定义的。

XPath 表达式 /something/cars[color] 将检索那些颜色已知的汽车。