下面是XML的示例:
<data>
<country >
<name> London </name>
<rank>1</rank>
<year>2008 </year>
</country>
</data>
给我的任务:以伦敦为输入,该程序将按排名和年份显示数据
我希望在程序中找到“伦敦”时在下面进行检索。
rank = 1
year = 2008
我只知道如何检索特定标签中的数据;即:找到“等级”,将给出输出“等级:1”
for country in root.findall('country'):
rank = country.find('rank')
print 'rank:' , rank.text
import xml.etree.ElementTree as ET
xml = '''<data>
<country >
<name>London</name>
<rank>1</rank>
<year>2008</year>
</country>
<country >
<name>Paris</name>
<rank>4</rank>
<year>2004</year>
</country>
</data>'''
def get_country_by_name(name):
# assuming the 'name' is unique in the xml doc
country_with_name = [e for e in root.findall('.//country') if e.find('name').text==name][0]
return country_with_name.find('rank').text,country_with_name.find('year').text
root = ET.fromstring(xml)
rank,year = get_country_by_name('London')
print(rank,year)
rank,year = get_country_by_name('Paris')
print(rank,year)