我在 Windows 32 位 PC 上使用 Python 2.4 版本。我正在尝试使用 ElementTree 模块解析一个非常大的 XML 文件。我从 effbot.org 下载了这个模块的 1.2.6 版本。
为了我的目的,我遵循了以下代码:
import elementtree.ElementTree as ET
input = ''' 001 Chuck 009 Brent '''
stuff = ET.fromstring(input)
lst = stuff.findall("users/user")
print len(lst)
for item in lst:
print item.attrib["x"]
item = lst[0]
ET.dump(item)
item.get("x") # get works on attributes
item.find("id").text
item.find("id").tag
for user in stuff.getiterator('user'):
print "User" , user.attrib["x"]
ET.dump(user)
如果输入的内容太大,超过10000行,fromstring
函数会报错(下)。谁能帮我纠正这个错误?
这是生成的错误:
回溯(最后一次调用):文件“C:\Documents and Settings\hariprar\My Documents\My files\Python Try\xml_try1.py”,第 16 行,在 -toplevel- stuff = ET.fromstring(input) File 中C:\Python24\Lib\site-packages\elementtree\ElementTree.py”,第 1012 行,在 XML 中返回 api.fromstring(text) 文件“C:\Python24\Lib\site-packages\elementtree\ElementTree.py”,第 182 行,fromstring parser.feed(text) 文件“C:\Python24\Lib\site-packages\elementtree\ElementTree.py”,第 1292 行,feed self._parser.Parse(data, 0) ExpatError: not well -formed(无效令牌):第 2445 行,第 39 列