仅当内部有特定标签时如何解析 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]
将检索那些颜色已知的汽车。
我正在尝试解析 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]
将检索那些颜色已知的汽车。