无法迭代xml中特定子元素的元素

时间:2015-09-01 23:41:02

标签: python xml elementtree

我试图重复所有的击球'使用ElementTree使用以下代码在给定的xml文件中标记:

col.id          { width: 1%; }
col.name        { width: 30%; }
col.actions     { width: 1%; }

xml file details

当我运行程序时,它会出错。

import xml.etree.cElementTree as ET
import requests
f = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20cricket.player.profile%20where%20player_id%3D"
s = "2962&diagnostics=true&env=store%3A%2F%2F0TxIGQMQbObzvU4Apia0V0"

ans = f + s
tree = ET.fromstring(requests.get(ans).text)
for x in tree.iter('Batting'):
    matches = x.find('Matches').text
    innings = x.find('Innings').text
    runs = x.find('Runs').text
    average = x.find('Average').text
    print("MATCHES:%d\nINNINGS:%d\nRUNS:%d\nAVERAGE%D\n"%(matches,innings,runs,average))

我努力了,但我无法弄清楚为什么我的查询返回为空。

1 个答案:

答案 0 :(得分:0)

从YQL控制台查看; Batting命名匹配没有子节点。

看起来Batting的Child节点是另一组子树,只是用1-20的数字命名。

http://i.imgur.com/0byDAX0.jpg?1

尝试查看.get()而不是.text是否可以检索属性

https://docs.python.org/2/library/xml.etree.elementtree.html#finding-interesting-elements