【发布时间】:2016-11-12 10:58:49
【问题描述】:
我是 Python 的初学者。 我使用 Python 2.7 和 ElementTree 来解析 XML 文件。 我有一个很大的 XML 文件(~700 MB),其中包含多个根实例,例如:
<?xml version="1.0" ?> <foo> <bar> <sometag> Mehdi </sometag> <someothertag> blahblahblah </someothertag> . . . </bar> </foo>
<?xml version="1.0" ?> <foo> <bar> <sometag> Hamidi </sometag> <someothertag> blahblahblah </someothertag> . . . </bar> </foo>
...
...
每个 xml 实例都放在一行中。 我需要在 python 中解析这样的文件。我是这样使用 ElementTree 的:
import xml.etree.ElementTree as ET
tree = ET.parse('filename.xml')
root = tree.getroot()
但它似乎只能访问第一个根 XML 实例行。 解析此类文件中所有 XML 实例的正确方法是什么?
【问题讨论】:
-
这不是有效的 XML。将文件拆分为单行并将每一行解析为 XML 文档。使用
manyLinesString.split('\n')。 -
正如@ThomasWeller 所说,这不是一个有效的 XML。 Ans 正如我所看到的,您有两个选择:(1)正确构建您的 XML 或(2)如果可能的话 - 读取该行并将每一行解析为不同的 XML。
标签: python xml xml-parsing elementtree