def parse(self, file=None, string=None): """ SAX parse XML text. @param file: Parse a python I{file-like} object. @type file: I{file-like} object @param string: Parse string XML. @type string: str @return: Parsed XML document. @rtype: L{Document} """ if file is None and string is None: return timer = metrics.Timer() timer.start() source = file if file is None: source = InputSource(None) source.setByteStream(suds.BytesIO(string)) sax, handler = self.saxparser() sax.parse(source) timer.stop() if file is None: metrics.log.debug("%s\nsax duration: %s", string, timer) else: metrics.log.debug("sax (%s) duration: %s", file, timer) return handler.nodes[0]
def parseFile(self, inputFile, stream=None): input = InputSource(inputFile) if stream is None: stream = file(inputFile) input.setByteStream(stream) self.parseSource(input)
def parse(self, file=None, string=None): """ SAX parse XML text. @param file: Parse a python I{file-like} object. @type file: I{file-like} object. @param string: Parse string XML. @type string: str """ timer = metrics.Timer() timer.start() sax, handler = self.saxparser() if file is not None: sax.parse(file) timer.stop() metrics.log.debug('sax (%s) duration: %s', file, timer) return handler.nodes[0] if string is not None: if isinstance(string, six.text_type): string = string.encode("utf-8") source = InputSource(None) source.setByteStream(BytesIO(string)) sax.parse(source) timer.stop() metrics.log.debug('%s\nsax duration: %s', string, timer) return handler.nodes[0]
def parse(self, file=None, string=None): """ SAX parse XML text. @param file: Parse a python I{file-like} object. @type file: I{file-like} object. @param string: Parse string XML. @type string: str """ timer = metrics.Timer() timer.start() sax, handler = self.saxparser() if file is not None: sax.parse(file) timer.stop() metrics.log.debug('sax (%s) duration: %s', file, timer) return handler.nodes[0] if string is not None: source = InputSource(None) try: source.setByteStream(StringIO(string.encode('utf8'))) except UnicodeDecodeError: source.setByteStream(StringIO(string)) sax.parse(source) timer.stop() metrics.log.debug('%s\nsax duration: %s', string, timer) return handler.nodes[0]
def test_ignorable(): p = XMLValParserFactory.make_parser() i = InputSource("doc3.xml") i.setByteStream(StringIO(doc3)) h = H() p.setContentHandler(h) p.parse(i) return h.passed
def test_illformed(): p = XMLValParserFactory.make_parser() i = InputSource("doc2.xml") i.setByteStream(StringIO(doc2)) try: p.parse(i) except SAXException,e: print "PASS:",e return 1
def resolveEntity(self, publicId, systemId): if systemId: name = os.path.join(self._path, systemId) if os.path.isfile(name): source = InputSource() source.setByteStream(open(name, "rb")) return source # Using default resolution return EntityResolver.resolveEntity(self, publicId, systemId)
def parseXLIFFSTring(self, xml_string): """ """ chandler = XLIFFHandler() parser = make_parser() # Tell the parser to use our handler parser.setContentHandler(chandler) # Don't load the DTD from the Internet parser.setFeature(handler.feature_external_ges, 0) inpsrc = InputSource() inpsrc.setByteStream(StringIO(xml_string)) try: parser.parse(inpsrc) return chandler except: return None
def parseXLIFFFile(self, file): # Create a parser parser = make_parser() chandler = XLIFFHandler() # Tell the parser to use our handler parser.setContentHandler(chandler) # Don't load the DTD from the Internet parser.setFeature(handler.feature_external_ges, 0) inputsrc = InputSource() try: if type(file) is StringType: inputsrc.setByteStream(StringIO(file)) else: filecontent = file.read() inputsrc.setByteStream(StringIO(filecontent)) parser.parse(inputsrc) return chandler except: return None
def addSectionTags(content): from cStringIO import StringIO src = InputSource() src.setByteStream(StringIO(content)) # Create an XML parser parser = make_parser() #("xml.sax.drivers2.drv_xmlproc") dh = docHandler() parser.setContentHandler(dh) er = EntityResolver() parser.setEntityResolver(er) # Allow external entities parser.setFeature(feature_external_ges, True) # Parse the file; your handler's methods will get called parser.parse(src) return dh.document.encode('UTF-8')
def parse(self, xml): input = InputSource() input.setByteStream(StringIO(xml)) self.parseSource(input)
def stream(str): inpsrc = InputSource() inpsrc.setByteStream(StringIO(str)) return inpsrc