Python解析xml文件遇到的编码解析的问题
2017-04-20 19:20
615 查看
使用python对xml文件进行解析的时候,假设xml文件的头文件是utf-8格式的编码,那么解析是ok的,但假设是其它格式将会出现例如以下异常:
xml.parsers.expat.ExpatError: unknown encoding
因此,为了保证程序的正常执行,我们须要对读取的文件进行编码处理。
1、首先将读取的字符从原来的编码解析,并编码成utf-8;
2、改动xml的encoding;
代码例如以下:
import sys import os import datetime import time import string from urllib import unquote import MySQLdb import xml.parsers.expat import xml.etree.ElementTree as Etree import types import httplib import urllib2 import urllib import json import re def readDataFromNetwork(url): req = urllib2.Request(url) rd = urllib2.urlopen(req) readData = rd.read() return readData # <![CDATA[ http://j.xywy.com/il_sii_27.htm ]]> def parseXmlStr(_str): try: # 将字符串进行解码编码 _str = unquote(_str) _str = _str.decode('gbk').encode('utf-8') print _str[0:100] except Exception,ex: print 'error' # 改动xml文件的编码方式 _str = re.sub('gbk', 'utf-8', _str) xmlDoc = Etree.fromstring(_str) childList = xmlDoc.getchildren() for node in childList: str_value = node.find("display/url").text if str_value.find('CDATA') != -1: print 'haha'
输出结果例如以下:
<?xml version="1.0" encoding="gbk" ?> <DOCUMENT> <item> <key>百日咳</key> <display> <title> <?xml version="1.0" encoding="utf-8" ?> <DOCUMENT> <item> <key>百日咳</key> <display>
相关文章推荐
- Python解析xml文件遇到的编码解析的问题
- python lxml包——解析xml文件遇到的问题处理
- ERROR:使用dom4j解析xml文件遇到中文路径问题
- android 解析时遇到编码问题
- 当Python在gbk编码上遇到pycharm,爬虫问号乱码问题
- Python&MySQL操作过程中遇到的编码问题
- 建立xml文件时遇到的编码问题和解决方法
- Android InputStreamReader 解析gbk、gb2312编码的xml文件 编码问题.
- 记录使用python时遇到的中文 编码问题与解决方法
- python 3读网页文件及保存成本地文件,遇到的编码问题
- Dom4j解析时遇到的编码问题
- 建立xml文件时遇到的编码问题和解决方法
- android下解析xml文件遇到中文问题
- python培训班第一天,遇到编码问题。
- python 处理movie-review-data遇到的UnicodeDecodeError 编码问题
- python(22)总结下最近遇到的编码问题
- Python中文编码过程中遇到的一些问题
- python socket模块遇到编码问题
- PHP中遇到BOM、<feff>编码导致json_decode函数无法解析问题
- 使用dom4j解析xml文件时遇到一个怪问题