首页 > 解决方案 > 有没有一种很好的方法可以在 python 中处理非常大的 XML 文件?

问题描述

维基百科完整的 xml 转储非常庞大,并且其中的iterparse方法ElementTree不能很好地处理有 3 个单独的数据字段都标记为<id>.

因此,我产生了将维基百科 XML 的一个可用部分从和之间的所有内容中提取出来的想法,<page>并将其</page>传递给ElementTree应该能够处理嵌套的部分。这个想法是在遇到 XML 页面标签时设置一个真/假标志来控制流并将 XML 块作为字符串发送出去。

这是我的代码,它没有做我认为应该做的事情!谁能告诉我出了什么问题?

非常感谢!

page = None

page_element = ''

for line in fh:

    line.rstrip()
    if line.startswith('  <page>'):
        page = True
        print('True')

    elif line.startswith('  </page>'):
        page = False
        print('False')

    elif page == True:
        lines to a string
       
    else: 
        pass string to ElementTree
        clear string

标签: pythonxml

解决方案


推荐阅读