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()