python minidom解析结果中带有冒号的XML提要

2024-05-28 22:51:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图解析一个显示NFL时间表的XML提要,其中一个属性是游戏时间,它看起来像这样gamestime=“8:30 PM”

下面是XML的一个片段

<Schedule Season="2010" Timezone="Eastern">
  <Game gameId="1" Week="1" GameDate="2010-09-09" AwayTeam="MIN" HomeTeam="NO" GameTime="8:30 PM"/>
  <Game gameId="2" Week="1" GameDate="2010-09-12" AwayTeam="MIA" HomeTeam="BUF" GameTime="1:00 PM"/>
  <Game gameId="3" Week="1" GameDate="2010-09-12" AwayTeam="DET" HomeTeam="CHI" GameTime="1:00 PM"/>
  <Game gameId="4" Week="1" GameDate="2010-09-12" AwayTeam="OAK" HomeTeam="TEN" GameTime="1:00 PM"/>
</Schedule>

这是我读它的代码

^{pr2}$

在我添加最后一行之前,它会打印出我期望的结果。ETA:一旦添加了最后一行,它就从XML的打印行变成了空的。在

 print node.getAttribute('GameTime')

我假设这是因为返回的数据中有一个冒号,但我找不到任何东西来帮助我,要么将其转义以允许它打印,要么忽略它。在

任何帮助都将不胜感激。在


Tags: game游戏属性时间xml时间表scheduleweek
1条回答
网友
1楼 · 发布于 2024-05-28 22:51:50

我试着重现你的错误,但它对我来说印得很好。在

我尝试从Python模块中的字符串加载数据,尝试从命名文件加载数据,并尝试从file对象加载数据。他们的结肠处理得很好。在

现在唯一的区别似乎是获取数据的方式:urllib2.openurl()。也许该函数返回的数据并不是minidom所期望的那样。或者它和冒号字符有关。在

这是我使用的代码测试.xml文件包含与三引号字符串中相同的xml数据):

from xml.dom import minidom

src = """
<Schedule Season="2010" Timezone="Eastern">
  <Game gameId="1" Week="1" GameDate="2010-09-09" AwayTeam="MIN" HomeTeam="NO" GameTime="8:30 PM"/>
  <Game gameId="2" Week="1" GameDate="2010-09-12" AwayTeam="MIA" HomeTeam="BUF" GameTime="1:00 PM"/>
  <Game gameId="3" Week="1" GameDate="2010-09-12" AwayTeam="DET" HomeTeam="CHI" GameTime="1:00 PM"/>
  <Game gameId="4" Week="1" GameDate="2010-09-12" AwayTeam="OAK" HomeTeam="TEN" GameTime="1:00 PM"/>
</Schedule>
"""

def test_print(dom):
    for node in dom.getElementsByTagName('Game'):
        print node.getAttribute('AwayTeam'),
        print node.getAttribute('HomeTeam'),
        print node.getAttribute('Week'),
        print node.getAttribute('gameId'),
        print node.getAttribute('GameDate'),
        print node.getAttribute('GameTime')
    print ''

dom = minidom.parseString(src)
test_print(dom)

dom = minidom.parse('data.xml')
test_print(dom)

f = open('data.xml', 'r')
dom = minidom.parse(f)
test_print(dom)
f.close()

url = 'http://api.fantasyfootballnerd.com/ffnScheduleXML.php?apiKey=1'
dom = minidom.parse(urllib2.urlopen(url))
test_print(dom)

编辑:增加了对Mike(原帖子作者)提供的URL的测试。在

相关问题 更多 >

    热门问题