Python XML解析:如果元素不存在

时间:2015-06-26 18:18:30

标签: python xml

我试图解析一些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,例如我无法跳过它并进入下一个游戏......

1 个答案:

答案 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
    ...

如果没有元素,只需让程序知道如何处理这种情况。