我正在寻找xml数据中的子标签值,下面的代码为我提供了xml数据中“信息”内部的所有标签“ color”的值,但是我正在寻找一个迭代,
如果颜色=黄色,我只需要获得其排名即可。
****我的代码:****
xmldata = '''
<FullGroup>
<color>General</color>
<link>url</link>
<three>test</three>
<four>
<info>
<color>yellow</color>
<rank>100</rank>
<place>first</place>
</info>
<info>
<color>red</color>
<rank>500</rank>
<place>second</place>
</info>
</four>
</FullGroup>'''
xml = ElementTree.fromstring(xmldata)
for color in xml.findall('.//info/color'):
print color.text
output:
yellow
red
Required output:
100
预先感谢..
答案 0 :(得分:1)
您可以像这样使用zip()
:
for color, rank in zip(xml.findall('.//info/color'), xml.findall('.//info/rank')):
if color.text == 'yellow':
print(rank.text)
答案 1 :(得分:1)
您的XPath表达式错误。要获得所有rank
个元素的info
个子元素,这些元素的子元素名为color
,其子元素的text()
值为“黄色”,请更改
xml = ElementTree.fromstring(xmldata)
for color in xml.findall('.//info/color'):
print color.text
到
xml = ElementTree.fromstring(xmldata)
for curRank in xml.findall('.//info[color="yellow"]/rank'):
print curRank.text
输出为:
100