BZip2解压缩和解析XML

你好.
我正在尝试拆卸bzpiped文件.如果我使用minidom.parsestring,
我遇到了这个错误:
Trackback(最近的最新电话):
文件" ./ replications.py",第342行,in?
文件"/usr/lib64/python2.4/xml/dom/minidom.py",1925年,in
临时
返回expatbuilder.parsestring(字符串)
文件"/usr/lib64/python2.4/xml/dom/expatbuilder.py",第940行,in
临时
返回builder.parsestring(字符串)
文件"/usr/lib64/python2.4/xml/dom/expatbuilder.py",第223行,in
临时
parser.parse(字符串,true)
xml.parsers.expat.expaterror:未构型(无效令牌):行
538676,第17列
如果我使用minidom.parse,我会遇到此错误:
Trackback(最近的最新电话):
文件" ./ replications.py",第341行,in?
files.xml = minidom.parse(bz2.decompress(dump))
文件"/usr/lib64/python2.4/xml/dom/minidom.py",第1915行,在解析中
返回expatbuilder.parse(文件)
文件"/usr/lib64/python2.4/xml/dom/expatbuilder.py",第922行,in
解析
fp = open(文件,'rb')
ioError
但是XML正常解析.
代码:
尝试:
handler = open(args [0]," r")
dump = handler.read()
handler.close()
除了ioError,错误:
打印("无法打开转储:%s"%错误)
sys.exit(1)
files.xml = minidom.parse(bz2.decompress(dump))

# 回答1


Phasma写道:
看起来您的XML文件在第538676行中被打破.
这应该阅读
处理程序= open(args [0]," rb")
也许那是你的问题.
顺便说一句,由于您似乎在那里解析了很大一部分XML,所以您应该
考虑使用LXML.它更快,更友好,功能更丰富,并且
比小巧更容易使用.它也可以直接从GZIP-ED文件中解析或
BZ2模块提供的类似文件的对象. http://codespeak.net/lxml/
Stefan

标签: python

添加新评论