📄 sax3.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 + -