• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python saxutils.prepare_input_source函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中xml.sax.saxutils.prepare_input_source函数的典型用法代码示例。如果您正苦于以下问题:Python prepare_input_source函数的具体用法?Python prepare_input_source怎么用?Python prepare_input_source使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了prepare_input_source函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: test_binary_file

 def test_binary_file(self):
     # If the source is a binary file-like object, use it as a byte
     # stream.
     prep = prepare_input_source(self.make_byte_stream())
     self.assertIsNone(prep.getCharacterStream())
     self.checkContent(prep.getByteStream(),
                       b"This is a byte stream.")
开发者ID:Eyepea,项目名称:cpython,代码行数:7,代码来源:test_sax.py


示例2: parse

 def parse(self, source):
     """Parse an XML document from a URL or an InputSource."""
     source = saxutils.prepare_input_source(source)
     self._source = source
     self.reset()
     self._cont_handler.setDocumentLocator(ExpatLocator(self))
     xmlreader.IncrementalParser.parse(self, source)
开发者ID:webiumsk,项目名称:WOT-0.9.15.1,代码行数:7,代码来源:expatreader.py


示例3: external_entity_ref

    def external_entity_ref(self, context, base, sysid, pubid):
        """Add external entity reference to XML document."""
        if not self._external_ges:
            return 1

        source = self._ent_handler.resolveEntity(pubid, sysid)
        source = saxutils.prepare_input_source(source,
                                               self._source.getSystemId() or
                                               "")

        # If an entry does not exist in the xml cache, create it.
        filepath = os.path.join(XML_CACHE, base64.urlsafe_b64encode(pubid))
        if not os.path.isfile(filepath):
            with open(filepath, 'w') as f:
                contents = source.getByteStream().read()
                source.setByteStream(StringIO(contents))
                f.write(contents)

        self._entity_stack.append((self._parser, self._source))
        self._parser = self._parser.ExternalEntityParserCreate(context)
        self._source = source

        try:
            xmlreader.IncrementalParser.parse(self, source)
        except:
            return 0  # FIXME: save error info here?

        (self._parser, self._source) = self._entity_stack[-1]
        del self._entity_stack[-1]
        return 1
开发者ID:hydroshare,项目名称:hydroshare,代码行数:30,代码来源:xmlparser.py


示例4: test_text_file

 def test_text_file(self):
     # If the source is a text file-like object, use it as a character
     # stream.
     prep = prepare_input_source(self.make_character_stream())
     self.assertIsNone(prep.getByteStream())
     self.checkContent(prep.getCharacterStream(),
                       "This is a character stream.")
开发者ID:Eyepea,项目名称:cpython,代码行数:7,代码来源:test_sax.py


示例5: documentFromURI

def documentFromURI(uri,fragID=None,targetLocalName=None,idAttr=None):
  if type(uri)==types.UnicodeType:
    uri=uri.encode('utf_8')
  source = prepare_input_source(uri)
  doc = documentFromSource(source,fragID,targetLocalName,idAttr)
  # who closes the input?
  return doc
开发者ID:vimov,项目名称:Deployer,代码行数:7,代码来源:SAXMLInfoset.py


示例6: parse

 def parse(self, source):
     "Parse an XML document from a URL or an InputSource."
     self._source = saxutils.prepare_input_source(source)
     try:
         self._parser.parse(source)
     except SAXException, e:
         raise _exceptions.SAXException("", e)
开发者ID:eveningwear,项目名称:aqua-release,代码行数:7,代码来源:drv_javasax.py


示例7: prepare_input_source

def prepare_input_source(source):
    """given a URL, returns a xml.sax.xmlreader.InputSource

    Works like xml.sax.saxutils.prepare_input_source.  Wraps the
    InputSource in a ReseekFile if the URL returns a non-seekable
    file.

    To turn the buffer off if that happens, you'll need to do
    something like

    f = source.getCharacterStream()
     ...
    try:
       f.nobuffer()
    except AttributeError:
       pass

    or

    if isinstance(f, ReseekFile):
      f.nobuffer()
    
    """
    from xml.sax import saxutils
    source = saxutils.prepare_input_source(source)
    # Is this correct?  Don't know - don't have Unicode experience
    f = source.getCharacterStream() or source.getByteStream()
    try:
        f.tell()
    except (AttributeError, IOError):
        f = ReseekFile.ReseekFile(f)
        source.setByteStream(f)
        source.setCharacterStream(None)
    return source
开发者ID:davidbliu,项目名称:project1,代码行数:34,代码来源:reseekinfo.py


示例8: test_locator_sax

def test_locator_sax(tester):
    tester.startTest("SAX InputSource")
    parser = CreateParser()
    parser.setContentHandler(LocatorTester(tester, CONTENT_PATH))
    parser.parse(prepare_input_source(CONTENT_PATH))
    verify_finished_locator(tester, parser)
    tester.testDone()
    return
开发者ID:H1d3r,项目名称:binary_blobs,代码行数:8,代码来源:test_saxlette.py


示例9: test_system_id

 def test_system_id(self):
     # If the source is an InputSource that has neither a character
     # stream nor a byte stream, open the system ID.
     src = InputSource(self.file)
     prep = prepare_input_source(src)
     self.assertIsNone(prep.getCharacterStream())
     self.checkContent(prep.getByteStream(),
                       b"This was read from a file.")
开发者ID:Eyepea,项目名称:cpython,代码行数:8,代码来源:test_sax.py


示例10: test_character_stream

 def test_character_stream(self):
     # If the source is an InputSource with a character stream, use it.
     src = InputSource(self.file)
     src.setCharacterStream(self.make_character_stream())
     prep = prepare_input_source(src)
     self.assertIsNone(prep.getByteStream())
     self.checkContent(prep.getCharacterStream(),
                       "This is a character stream.")
开发者ID:Eyepea,项目名称:cpython,代码行数:8,代码来源:test_sax.py


示例11: test_xmlreader_sax

def test_xmlreader_sax(tester):
    tester.startTest("SAX InputSource")
    parser = CreateParser()
    builder = DomBuilder()
    parser.setContentHandler(builder)
    parser.parse(prepare_input_source(CONTENT_PATH))
    tester.compare(XMLREADER_CONTENT, builder, func=compare_builder)
    tester.testDone()
    return
开发者ID:H1d3r,项目名称:binary_blobs,代码行数:9,代码来源:test_saxlette.py


示例12: test_byte_stream

 def test_byte_stream(self):
     # If the source is an InputSource that does not have a character
     # stream but does have a byte stream, use the byte stream.
     src = InputSource(self.file)
     src.setByteStream(self.make_byte_stream())
     prep = prepare_input_source(src)
     self.assertIsNone(prep.getCharacterStream())
     self.checkContent(prep.getByteStream(),
                       b"This is a byte stream.")
开发者ID:Eyepea,项目名称:cpython,代码行数:9,代码来源:test_sax.py


示例13: parse

    def parse(self, source):
        source = prepare_input_source(source)

        self.prepareParser(source)
        file = source.getByteStream()
        buffer = file.read(self._bufsize)
        while buffer != "":
            self.feed(buffer)
            buffer = file.read(self._bufsize)
        self.close()
开发者ID:eveningwear,项目名称:aqua-release,代码行数:10,代码来源:drv_sgmlop.py


示例14: _parse_to_queue

 def _parse_to_queue(self, stream, queue):
     parser = self.rdflib_parser()
     store = _QueueGraph(queue)
     source = prepare_input_source(stream)
     try:
         parser.parse(source, store,
                      *self.parser_args, **self.parser_kwargs)
     except:
         queue.put(('exception', sys.exc_info()))
     else:
         queue.put(('sentinel', None)) # Sentinel
开发者ID:ox-it,项目名称:humfrey,代码行数:11,代码来源:wrapper.py


示例15: fromStream

 def fromStream(self, stream, ownerDoc=None):
     self.handler.initState(ownerDoc=ownerDoc)
     #self.parser.parseFile(stream)
     s = saxutils.prepare_input_source(stream)
     self.parser.parse(s)
     rt = self.handler.getRootNode()
     #if hasattr(self.parser.parser,'deref'):
     #    self.parser.parser.deref()
     #self.parser.parser = None
     #self.parser = None
     #self.handler = None
     return rt
开发者ID:eveningwear,项目名称:aqua-release,代码行数:12,代码来源:Sax2.py


示例16: produce_items

def produce_items (input, produce):
	source = prepare_input_source (input)

	parser = xml.sax.make_parser ()
	parser.setFeature (xml.sax.handler.feature_namespaces, 1)
	parser.setContentHandler (OnixHandler (parser, process_item))
	url_cache_dir = os.getenv ("URL_CACHE_DIR")
	if url_cache_dir:
		sys.stderr.write ("using url cache in %s\n" % url_cache_dir)
		parser.setEntityResolver (CachingEntityResolver (parser, url_cache_dir))
	else:
		sys.stderr.write ("no url_cache_dir; XML resources will always be loaded from network\n")
	parser.setErrorHandler (TestErrorHandler ())
	parser.parse (source)
开发者ID:hornc,项目名称:openlibrary-1,代码行数:14,代码来源:onix.py


示例17: parse

    def parse(self, source):
        try:
            self.__parsing = 1

            # interpret source
            
            source = prepare_input_source(source)

            # create parser
                
            if self.__validate:
                parser = xmlval.XMLValidator()
            else:
                parser = xmlproc.XMLProcessor()

            # set handlers
                
            if self._cont_handler != None or self._lex_handler != None:
                if self._cont_handler == None:
                    self._cont_handler = saxlib.ContentHandler()
                if self._lex_handler == None:
                    self._lex_handler = saxlib.LexicalHandler()

                if self.__namespaces:
                    filter = NamespaceFilter(parser, self._cont_handler,
                                             self._lex_handler, self)
                    parser.set_application(filter)
                else:
                    parser.set_application(self)

            if self._err_handler != None:
                parser.set_error_handler(self)

            if self._decl_handler != None or self._dtd_handler != None:
                parser.set_dtd_listener(self)
                
            # FIXME: set other handlers

            bufsize=16384
            self._parser = parser # make it available for callbacks
            #parser.parse_resource(source.getSystemId()) # FIXME: rest!
            parser.set_sysid(source.getSystemId())
            parser.read_from(source.getByteStream(), bufsize)
            source.getByteStream().close()
            parser.flush()
            parser.parseEnd()
            
        finally:
            self._parser = None
            self.__parsing = 0
开发者ID:MrGreen123,项目名称:Pydev,代码行数:50,代码来源:drv_xmlproc.py


示例18: parse

    def parse(self, source):
        "Parse an XML document from a URL or an InputSource."
        source = saxutils.prepare_input_source(source)

        self._source = source
        try:
            self.reset()
            self._cont_handler.setDocumentLocator(ExpatLocator(self))
            xmlreader.IncrementalParser.parse(self, source)
        except:
            # bpo-30264: Close the source on error to not leak resources:
            # xml.sax.parse() doesn't give access to the underlying parser
            # to the caller
            self._close_source()
            raise
开发者ID:Eyepea,项目名称:cpython,代码行数:15,代码来源:expatreader.py


示例19: external_entity_ref

 def external_entity_ref(self, context, base, sysid, pubid):
     if not self._external_ges:
         return 1
     source = self._ent_handler.resolveEntity(pubid, sysid)
     source = saxutils.prepare_input_source(source, self._source.getSystemId() or '')
     self._entity_stack.append((self._parser, self._source))
     self._parser = self._parser.ExternalEntityParserCreate(context)
     self._source = source
     try:
         xmlreader.IncrementalParser.parse(self, source)
     except:
         return 0
     (self._parser, self._source) = self._entity_stack[-1]
     del self._entity_stack[-1]
     return 1
开发者ID:johndpope,项目名称:sims4-ai-engine,代码行数:15,代码来源:expatreader.py


示例20: parse

    def parse(self, source):
        "Parse an XML document from a URL or an InputSource."
        source = saxutils.prepare_input_source(source)

        self._source = source
        self.reset()
        self._cont_handler.setDocumentLocator(ExpatLocator(self))
        try:
            xmlreader.IncrementalParser.parse(self, source)
        finally:
            # Drop reference to Expat parser, but read potential
            # error state before that. Also, if close has completed,
            # we don't have a parser anymore, anyway.
            if self._parser:
                self._ColumnNumber = self._parser.ErrorColumnNumber
                self._LineNumber = self._parser.ErrorLineNumber
                self._parser = None
开发者ID:64studio,项目名称:pdk,代码行数:17,代码来源:expatreader.py



注:本文中的xml.sax.saxutils.prepare_input_source函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python saxutils.quoteattr函数代码示例发布时间:2022-05-26
下一篇:
Python saxutils.escape函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap