在给定另一个子元素的情况下检索子元素中的文本

问题描述 投票:-1回答:1

下面是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
python xml elementtree
1个回答
0
投票

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)

© www.soinside.com 2019 - 2024. All rights reserved.