解析XML并计算并计算“计数”,为什么“计数= tree.findall('comment / coment')”生成[]

时间:2015-11-20 19:41:07

标签: python xml python-2.7 xml-parsing

import urllib
import xml.etree.ElementTree as ET


url = raw_input('Enter location: ')

print 'Retrieving', url
uh = urllib.urlopen(url)
data = uh.read()
print data
print 'Retrieved',len(data),'characters'
tree = ET.fromstring(data)

counts = tree.findall('comment/comment')
print counts

XML数据格式:

<comment>
  <name>Matthias</name>
  <count>97</count> 
</comment>

3 个答案:

答案 0 :(得分:2)

您应该使用:

counts = tree.findall('.//comment')

这将检索包含'name'和'count'的所有子树。要查找'count'标记中的所有值,只需使用for循环:

for values in counts:
    print int(values.find('count').text)

你可以从那里得到总和。

答案 1 :(得分:0)

根据您提供的XML,comment/comment不匹配。

您可能打算使用:

tree.findall('.//comment/count')

然后,如果你想计算总和:

sum(int(c.text) for c in tree.findall('.//comment/count'))

答案 2 :(得分:0)

您可以使用python3中的以下代码求和:

counts = tree.findall('.//count')

total =0

for item in counts:

    total +=int(item.text)

print("Sum :",total)