⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sax3.py

📁 python web programming 部分
💻 PY
字号:
#!/usr/bin/pythonimport sysfrom xml.sax import saxutilsfrom xml.sax import make_parserfrom xml.sax import handler# Define a simple SAX handlerclass SimpleHandler(saxutils.DefaultHandler):    def setDocumentLocator(self,locator):        print 'setDocumentLocator: ', locator        self.locator = locator    def startPrefixMapping(self,prefix,uri):        print 'startPrefixMapping: ', prefix,uri    def endPrefixMapping(self,prefix):        print 'endPrefixMapping: ',prefix            def startDocument(self):        print 'startDocument:'            def endDocument(self):        print 'endDocument'    def startElement(self,name,attrs):        print 'startElement: ' ,name,attrs        col = self.locator.getColumnNumber()        line = self.locator.getLineNumber()        pid = self.locator.getPublicId()        sid = self.locator.getSystemId()        print col,line,pid,sid            def endElement(self,name):        print 'endElement: ',name    def characters(self,data):        print 'characters: ', repr(data)    def startElementNS(self,name,qname,attrs):        print 'startElementNS: ', name,qname,attrs            def endElementNS(self,name,qname):        print 'endElementNS: ', name, qname    def ignorableWhitespace(self,ch):        print 'ignorableWhitespace: ', repr(ch)#    def processingInstruction(self,target,data):#        print 'processingInstruction: ', target, data    def skippedEntity(self,name):        print 'skippedEntity: ', nameclass SimpleDTD(handler.DTDHandler):    def notationDecl(self,name,publicid,systemid):        print 'notationDecl: ', name, publicid, systemid    def unparsedEntityDecl(self,name,publicid,systemid,ndata):        print 'unparsedEntityDecl: ', name, publicid, systemid,ndataimport codecsfrom xml.sax import xmlreaderclass SimpleEntity(handler.EntityResolver):    def resolveEntity(self,publicid,systemid):        print "resolveEntity: ", publicid, systemid        if systemid == 'header.xml':            return xmlreader.InputSource("altheader.xml")            #return codecs.open("altheader.xml","r","utf-8")        return systemidclass SimpleError(handler.ErrorHandler):    def error(self,exception):        print "error: ", exception    def fatalError(self,exception):        print "fatalError: ", exception        raise exception    def warning(self,exception):        print "warning: ", exception        # Create a parserparser = make_parser()parser = make_parser("xml.sax.drivers2.drv_xmlproc")    # Create xmlproc parser# Create a handlersh = SimpleHandler()dh = SimpleDTD()eh = SimpleEntity()parser.setErrorHandler(SimpleError())# Tell the parser about itparser.setContentHandler(sh)parser.setDTDHandler(dh)parser.setEntityResolver(eh)parser.setFeature(handler.feature_namespaces,1)#parser.setFeature(handler.feature_external_ges,0)parser.setFeature(handler.feature_validation,1)#parser.setFeature(handler.feature_namespace_prefixes,1)# Parse a fileparser.parse(sys.argv[1])

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -