【发布时间】:2017-07-28 13:46:34
【问题描述】:
我有一个大型 XML 文件(包含 200 万个对象的详细信息),其内容类似于如下所示。文件大小为 657MB
<?xml version="1.0" encoding="UTF-8?>
<root>
<item>
<rank>1</rank>
<landinglink>www.google.com</landinglink>
<descrip>some text</descrip>
</item>
<item>
<rank>1</rank>
<landinglink>www.facebook.com</landinglink>
<descrip>some text</descrip>
</item>
<item>
<rank>1</rank>
<landinglink>www.xyz.com</landinglink>
<descrip>some text</descrip>
</item>
.
.
.
.
.
.
.
</root>
我正在尝试打印所有的“登陆链接”。我使用的代码如下所示。
import xml.etree.cElementTree as ET
for event, elem in ET.iterparse("filename.xml"):
if event == 'end' and elem.tag == 'item':
print elem.find('landinglink').text
但是在执行代码时它给了我以下错误。
Traceback (most recent call last):
File "D:/test.py", line 2, in <module>
for event, elem in ET.iterparse("filename.xml"):
File "<string>", line 91, in next
cElementTree.ParseError: not well-formed (invalid token): line 1338, column 298
此错误在不同位置不断重复。如何避免此类错误。任何帮助将不胜感激。
【问题讨论】:
-
那条线上的那个位置是什么?
-
一些文字描述,但其中包含 xA0 种错误
-
如果值为
\xA0,则您的文件未正确编码为utf-8。 -
如何解决这个问题
-
我会尝试的第一件事是将 XML 声明更改为
<?xml version="1.0" encoding="latin=1" ?>并看看会发生什么。
标签: python python-2.7 xml-parsing