本文整理汇总了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;未经允许,请勿转载。 |
请发表评论