我正在尝试解析具有以下架构的xml文件:
<game gameId="cricket">
<Period duration="1year" endTime="2017-12-31"/>
<repPeriod duration="1year"/>
<player p="1">sachin</player>
<player p="2">rahul</player>
<player p="3">saurav</player>
<player p="4">kapil</player>
<player p="5">sanjay</player>
<player p="6">kartik</player>
<player p="7">michel</player>
<player p="8">rickey</player>
<ranking period="2016">
<r p="1">3</r>
</ranking>
<ranking period="DEFAULT">
<r p="2">4</r>
<r p="3">16</r>
<r p="4">16</r>
<r p="5">6</r>
<r p="6">3</r>
<r p="7">7</r>
<r p="8">7</r>
</ranking>
</game>
我无法找到属性p=“1”的玩家如何映射到相应的排名值
我想要的输出是:
玩家:排名
萨钦:3
拉胡尔:4
到目前为止我的代码是:
from xml.dom import minidom
doc = minidom.parse('report.xml')
node = doc.documentElement
gameinfo = doc.getElementsByTagName("game")
counterlist = ['cricket','football']
for gameid in gameinfo:
for counter in counterlist:
if gameid.getAttribute('game') == counter:
itemlist = counter.getElementsByTagName("player")
i = len(itemlist)
j = 1
while j<=i:
for itemnumber in itemlist:
if itemnumber.getAttribute('p') == j:
Playername = gameid.getElementsByTagName("player")[j].childNodes[0].data
rankid = gameid.getElementsByTagName("r")[j].childNodes[0].data
print (playername : rankid)
j = j+1
使用
ElementTree
例如:
输出:
最简单的方法是制作一个字典来存储玩家名称和ID(即将
<player p="1">sachin</player>
存储为{ '1': 'sachin' }
),然后遍历排名并使用存储的玩家名称数据填充输出。你知道吗输出:
相关问题 更多 >
编程相关推荐