繁体   English   中英

用python解析大型xml文件

[英]parsing large xml file with python

xml文件示例:

<header>
<name>name</name>

<items>

<item>
<title>title</title>
<add>add</add>
</item>

<item>
<title>title</title>
<add>add</add>
</item>

</items>
</header>

我想将信息解析成按每个标题和子组项目分解的组:

xml也解析:

name
----title
----add

----title
----add

next header

name
----tile
----add
----etc
----etc

如果有人可以发布示例,最好使用elem tree iterparse它的大型xml文件...

我不起作用的例子是...

import xml.etree.cElementTree as etree
infile = open("c:/1.xml", 'r')
context = etree.iterparse(infile, events=("start", "end"))

for event, element in context:
    if event == "end":
        if element.tag == "header":
            print element.findtext('name')
        elif element.tag == "item":
            print element.findtext('title')
            print element.findtext('add')

因此,非常简单,使用您提供的文件:

import xml.etree.cElementTree as etree

for event, element in etree.iterparse("C:/1.xml"):
    if element.tag == "name":
        print element.text
    elif element.tag in ["title", "add"]:
        print "---" + element.text

这给出了输出:

name
----title
----add
----title
----add

我想如果您想在标头之间使用一个空格,您将:

if element.tag == "header":
    print "\n"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM