仅在其中包含特定标签的情况下如何解析xml

时间:2019-08-13 06:29:38

标签: python xml parsing xml-parsing elementtree

我正在尝试解析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

所以我只需要在res列表中获得“ cartwo”,因为颜色是在cars标签下定义的。

1 个答案:

答案 0 :(得分:1)

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