2016-06-11 211 views
0

我有这样XML解析问题编码错误

<?xml version="1.0" encoding="UTF-8"?> 
<tw> 
    <tweet> 
     <yazi>atılacak tweet 1</yazi> 
     <resim>resim.png</resim> 
    </tweet> 
    <tweet> 
     <yazi>atılacak tweet 2</yazi> 
     <resim>yok</resim> 
    </tweet> 
</tw> 

一个XML文件,我想用

import xml.etree.ElementTree as ett 

e = ett.parse("tweet.xml").getroot() 

读它,但我得到这个错误,

xml.etree.ElementTree.ParseError: encoding specified in XML declaration is incorrect: line 1, column 31

为什么?我如何解决这个问题,我搜索了很多,XML文件看起来不错。我不明白为什么我不能读取文件。

+0

无法复制。我复制粘贴到一个文件并运行此代码没有问题。 – idjaw

+0

@idjaw嗯,我得到这个错误,我在Windows上工作 – GLHF

+0

我无法复制你的错误。我将你粘贴的XML文件复制到一个文件中。我复制了该代码并运行它,它对我来说工作正常。我无法重现您的错误。 – idjaw

回答

-1
# -*- coding: utf-8 -*- 

import xml.etree.ElementTree as ett 


e = ett.parse("tweet.xml").getroot() 

print(e.tag) 

for altindakiler in e: 
    print(altindakiler.tag, altindakiler.attrib) 
+0

这可能会修复这个错误,但并没有回答为什么它首先发生的问题。 –

0

您的文件中可能包含无效的utf-8字符,例如, xml文件是iso-8859-1编码...或者您可以尝试utf-8而不是UTF-8

+0

我已经试过了。 – GLHF

+0

@ GLHF - 发布的XML是导致原始问题的文件吗? –