【发布时间】:2014-06-30 05:15:14
【问题描述】:
我有一个结构如下的 XML 文件
<article>
<body>
text1
<collectionlink>
text2
</collectionlink>
text3
</body>
</article>
我使用 iterparser 进行解析。但它没有正确打印数据。我在这里添加代码。
从 xml.etree.ElementTree 导入迭代解析,转储
def main():
fp=open("sam.xml",'r')
tree_dict = create_dict_tree_elements(fp)
def create_dict_tree_elements(fp):
depth=0
for event,node in iterparse(fp, ['start', 'end', 'start-ns', 'end-ns']):
if event=='start-ns' or event=='end-ns':
continue
if (event == 'start' and depth == 0):
print node.text
depth += 1
continue
if (event == 'start' and depth >0 ):
print node.text
depth+=1
if(event =='end' ):
depth-=1
if __name__ == '__main__':
main()
我的预期输出:
text1
text2
text3
输出正在获取
text1
text2
【问题讨论】:
-
你在输出中得到了什么?
-
节点深度 0 文章深度节点大于 1 正文文本1 节点深度大于 1 集合链接文本2
-
你的预期输出是什么