python解析xml,由于某些协会规定的原因,只能解析utf8和utf16的格式,而gbk和gb2312等解析的时候都会报错,但是对于某些导出的xml格式文档,很多都是gbk编码的,那么提供一种处理方式
先将xml解析成utf8格式,然后替代第一行的encoding格式,然后保存一个新文件,提供后续解析,在解析完之后将这个新文件删除
#coding:UTF-8
import codecs
f = codecs.open(file_name, 'rb','gbk')
text = f.read().encode('utf-8')
text = text.replace('<?xml version="1.0" encoding="GBK"?>','<?xml version="1.0" encoding="utf-8"?>')
f.close()
tempfilename = file_name.split('.xml')[0]+'temp.xml'
f = open(tempfilename, 'wb')
f.write(text)
f.close()
dom = minidom.parse(tempfilename)
os.remove(tempfilename)
附:
解析
这种文本node中的内容方法:
for ListOfModel in dom.getEleme
from xml.dom import minidom
dom = minidom.parse(tempfilename)
for ListOfModel in dom.getElementsByTagName("ListOfModel"):
self.__date = ListOfModel.getAttribute('startTime')