xml解析工作不正常

2024-03-29 08:58:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个结构如下的XML文件

<article>
<body>
text1
<collectionlink>
text2
</collectionlink>
text3
</body>
</article>

我使用iterparser进行解析。但它不能正确打印数据。我在这里添加代码。你知道吗

从xml.etree.ElementTree文件导入iterparse,转储

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

Tags: 文件eventnodetreeifmainarticlestart
1条回答
网友
1楼 · 发布于 2024-03-29 08:58:49

在元素树方面节点.text开头标记和下一个标记之间的文本。结束标记和下一个标记之间的文本可以在中找到节点.tail. 你知道吗

相关问题 更多 >