Python iterparse无法获取子级文本

Python iterparse无法获取子级文本,python,xml,python-3.4,iterparse,Python,Xml,Python 3.4,Iterparse,编辑:我找到了一种方法让它工作。原来我有一个elem.clear()调用,但在下面的代码中没有显示。我为此道歉。我修改了它,这样你就可以看到它是怎样的了。结果是,如果我将调用移到if语句中,问题就消失了。但是我仍然不明白在if语句完成之前是如何调用clear的 我有一个XML文件,看起来像这样: <alarm> <alarm_id> 127688705 </alarm_id> <site> 1 </site> <eve

编辑:我找到了一种方法让它工作。原来我有一个
elem.clear()
调用,但在下面的代码中没有显示。我为此道歉。我修改了它,这样你就可以看到它是怎样的了。结果是,如果我将调用移到if语句中,问题就消失了。但是我仍然不明白在if语句完成之前是如何调用clear的

我有一个XML文件,看起来像这样:

<alarm> <alarm_id>   127688705 </alarm_id> <site> 1     </site> <event_time> 14/08/31 00:01:00    </event_time> <cease_time> 14/08/31 00:07:00    </cease_time> <problem_text>
    Something went wrong                                     </problem_text> </alarm>
但是我从
child.text
中得到了
None
。以下是我运行脚本时得到的输出:

[big@bang src]$ ./parse_xml.py
event: end
alarm_id None
site None
event_time None
cease_time None
problem_text None

你们能帮我一下吗?

删除return语句,这段代码就可以了。

我也遇到了同样的问题-我的根元素有文本和属性,但子元素没有文本或元素。我最初的代码是:

有效且不清除子元素的代码为文本


你的代码对我来说很好<代码>Python 2.7.3。
[big@bang src]$ ./parse_xml.py
event: end
alarm_id None
site None
event_time None
cease_time None
problem_text None
    for _, element in ET.iterparse(file_in):
        el = shape_element(element)
        if el:
            data.append(el)
        element.clear()
    for _, element in ET.iterparse(file_in):
        el = shape_element(element)
        if el:
            data.append(el)
            element.clear()