免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3723 | 回复: 0
打印 上一主题 下一主题

使用Python进行XML文件读取,使用 sax 库 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-14 10:09 |只看该作者 |倒序浏览
使用Python进行XML文件读取,使用 sax 库:
#-*- coding:UTF-8 -*-
import string
import xml.sax
from xml.sax.handler import *
class QuotationHandler(ContentHandler):
    """Crude extractor for quotations.dtd compliant XML document"""
    def __init__(self, out):
        self.out = out
        self.string=''
        self.inread=0
    def startDocument(self):
        print '--- Begin Document ---'
        self.out.write('offer_id, title, mobile_url\n')
    def startElement(self, name, attrs):
        if name == 'title':
            self.in_title=1
            self.inread=1
        elif name=='offer_id':
            self.in_offerid= 1
            self.inread=1
        elif name=='mobile_url':
            self.in_mobileurl=1
            self.inread=1
        else:
            pass
    def endElement(self, name):
        if name == 'title':
            self.inread=0
            self.in_title=0
            self.out.write(self.string.encode("GBK")+',')
            print self.string
            self.string = ''
        elif name=='offer_id':
            self.in_offerid= 0
            self.inread=0
            self.out.write(self.string.encode("GBK")+",")
            self.string = ''
        elif name=='mobile_url':
            self.in_mobileurl=0
            self.inread=0
            self.out.write(self.string.encode("GBK")+",\n")
            self.string = ''
        else:
            pass
    def characters(self, ch):
        if self.inread:
            self.string = self.string + ch
if __name__ == '__main__':
    out = open("test.csv","wt")
    try:
        parser = xml.sax.make_parser()
        handler = QuotationHandler(out)
        parser.setContentHandler(handler)
        parser.parse("i900738_090816_2.xml")
    except:
        import traceback
        traceback.print_exc()
    finally:
        out.close()


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11826/showart_2051628.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP