我试图解析一些xml数据(赔率),有时某个元素可能不存在所以我试图跳过它的某个部分并继续,但是我继续得到一个列表索引范围无论我做什么。
for x in xmldoc:
time = x.getElementsByTagName("event_datetimeGMT")[0].firstChild.data
game_id = x.getElementsByTagName("gamenumber")[0].firstChild.data
sport = x.getElementsByTagName("sporttype")[0].firstChild.data
如果event_datetimeGMT,gamenumber和sporttype ...这段代码将正常工作...但是假设没有datetimeGMT,例如我无法跳过它并进入下一个游戏......
答案 0 :(得分:2)
您正在尝试访问所有元素event_datetimeGMT
列表中的第一个元素,如果列表为空,这当然会导致索引错误。无论如何,有两种基本的解决方案可以继续。
首先:
for x in xmldoc:
times = x.getElementsByTagName("event_datetimeGMT")
if times:
time = times[0].firstChild.data
...
第二
for x in xmldoc:
try:
x.getElementsByTagName("event_datetimeGMT")[0].firstChild.data
except IndexError:
pass
...
如果没有元素,只需让程序知道如何处理这种情况。