使用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>

最新文章

  1. Unity Cookie
  2. Leetcode2:Add Two Numbers@Python
  3. OC-Category
  4. transition和animation动画简介
  5. Select the best path in a matrix
  6. CENTOS 7 开放端口设置
  7. skynet源代码学习 - 从全局队列中弹出/压入一个消息队列过程
  8. constructor.prototype
  9. onscroll 元素滚动事件
  10. 为啥用ip不可以访问知乎,而百度却可以?
  11. Comparable vs Comparator
  12. MySQL和MySQL的注释方式
  13. 导入maven项目导入依赖不会报错,但使用的jar会标红
  14. SVG2PNG(前台和后台将SVG转换为PNG)--amcharts导出png
  15. Vue:v-on自定义事件
  16. 使用C#把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前
  17. 【机器学习算法】Boostrapping算法
  18. 编译器错误消息: CS0016: 未能写入输出文件“c:/Windows/Microsoft.NET/Framework/v4.0.50727/Temporary ASP.NET Files/root .... 拒绝访问。
  19. Python - Django - ORM 实例(二)
  20. jquery 问题

热门文章

  1. [Python爬虫] 之一 : Selenium+Phantomjs动态获取网站数据信息
  2. beyond compare 比较Xls文件时只显示有差异的列
  3. SSIS实践入门3:把SSIS程序包从A电脑到B电脑的转移
  4. Axure与iPhone应用程序原型创建(五)
  5. Wait--使用sys.dm_io_virtual_file_stats来查看IO延迟
  6. JavaWeb 调用接口
  7. java反射--通过反射了解集合泛型的本质
  8. Jsp+Servlet+JavaBean经典MVC模式理解
  9. 转:【微信小程序】 微信小程序-拍照或选择图片并上传文件
  10. Solr 4.0部署