2 sinat 29902953 sinat_29902953 于 2015.07.17 16:28 提问

python调用xml文件的时候,报出ExpatError求大神指点

问题代码:
import xml.dom.minidom
#打开xml文件
dom=xml.dom.minidom.parse("C:\Users\***\Desktop\myprogram\login.xml")

运行时,提示:
Traceback (most recent call last):
File "C:\Users***\Desktop\myprogram\test_login.py", line 9, in
dom=xml.dom.minidom.parse("C:\Users\***\Desktop\myprogram\login.xml", parser=None, bufsize=None)
File "C:\Python27\lib\xml\dom\minidom.py", line 1918, in parse
return expatbuilder.parse(file)
File "C:\Python27\lib\xml\dom\expatbuilder.py", line 924, in parse
result = builder.parseFile(fp)
File "C:\Python27\lib\xml\dom\expatbuilder.py", line 207, in parseFile
parser.Parse(buffer, 0)
ExpatError: not well-formed (invalid token): line 4, column 13

我的xml文件里有中文,这个不知道有没有影响,网上百度了一下,说是编码问题,就算是编码问题怎么解决啊,求大神赐教,小弟感激不尽...

5个回答

f455176715
f455176715   2015.07.17 17:01

如果是编码问题的话这样解决:
在每个xml文件开头都有这样一条语句来声明该XML文件的编码方式:

 <?xml version="1.0" encoding="UTF-8"?>

用记事本方式打开xml文件,encoding后面指的就是编码方式,把它和你的python IDE所用的编码方式改一样
一般都用utf-8,但也可能用gb2312

sinat_29902953
sinat_29902953 回复xiluoduyu: 大哥,能具体点吗,本人新手,这个编码问题确实头疼
2 年多之前 回复
xiluoduyu
xiluoduyu 与其看编码格式,想更省事的就使用cchardet或者chardet吧,或者直接try 多种编码格式读取成字符串
2 年多之前 回复
oyljerry
oyljerry   Ds   Rxr 2015.07.17 17:02

把你的xml文件用UTF8编码,这样xml类库读取文件的时候,会把中文等用utf8解码。读取内容给你。

sinat_29902953
sinat_29902953 这个我试过了,我用notepad++,把xml文件换成UTF-8编码,读取还是会有这个问题,
2 年多之前 回复
xiluoduyu
xiluoduyu 没必要改文件编码吧,传一个文件对象给parse时可以设置编码格式,还有啦UTF8不行,UTF-8才可以,文档里面说了
2 年多之前 回复
xiluoduyu
xiluoduyu   2015.07.17 18:14

TraceBack里面说的很明白了,ExpatError: not well-formed (invalid token): line 4, column 13。第四行13列有未格式不对的符号,看着改下试下

sinat_29902953
sinat_29902953   2015.07.18 14:17

@xiluoduyu 163邮箱登录那一行是这个,data区好像不能用1开头,换成非数字就可以了,但是我这个程序必须得用这个啊

sinat_29902953
sinat_29902953   2015.07.18 14:19

@xiluoduyu 那一行是这个:《explain》163邮箱登录《explain》 data区好像不能用1开头,换成非数字就可以了,但是我这个程序必须得用这个啊

sinat_29902953
sinat_29902953 回复oyljerry: 我也不清楚,把数字改掉就可以了
2 年多之前 回复
oyljerry
oyljerry 不太明白数字1开头为什么影响?
2 年多之前 回复
oyljerry
oyljerry 不太明白数字1开头为什么影响?
2 年多之前 回复
oyljerry
oyljerry 不太明白数字1开头为什么影响?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片