本文整理汇总了Python中xml.sax.handler方法的典型用法代码示例。如果您正苦于以下问题:Python sax.handler方法的具体用法?Python sax.handler怎么用?Python sax.handler使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xml.sax
的用法示例。
在下文中一共展示了sax.handler方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_parser
# 需要导入模块: from xml import sax [as 别名]
# 或者: from xml.sax import handler [as 别名]
def get_parser(document=None, namespaces=1, validate=0, external_ges=1,
logfile=None, doc_factory=new_document):
import xml
if hasattr(xml, "use_pyxml"):
xml.use_pyxml()
import xml.sax.sax2exts
import xml.sax.handler
handler = POM.ContentHandler(document, doc_factory=doc_factory, logfile=logfile)
errorhandler = POM.ErrorHandler(logfile)
# create parser
parser = xml.sax.sax2exts.XMLParserFactory.make_parser()
parser.setFeature(xml.sax.handler.feature_namespaces, namespaces)
parser.setFeature(xml.sax.handler.feature_validation, validate)
parser.setFeature(xml.sax.handler.feature_external_ges, external_ges)
parser.setFeature(xml.sax.handler.feature_external_pes, 0)
parser.setFeature(xml.sax.handler.feature_string_interning, 1)
# set handlers
parser.setContentHandler(handler)
parser.setDTDHandler(handler)
parser.setEntityResolver(handler)
parser.setErrorHandler(errorhandler)
return parser
示例2: reset
# 需要导入模块: from xml import sax [as 别名]
# 或者: from xml.sax import handler [as 别名]
def reset(self):
self.pulldom = PullDOM()
# This content handler relies on namespace support
self.parser.setFeature(xml.sax.handler.feature_namespaces, 1)
self.parser.setContentHandler(self.pulldom)
示例3: get_parser
# 需要导入模块: from xml import sax [as 别名]
# 或者: from xml.sax import handler [as 别名]
def get_parser(document=None, namespaces=0, validate=0, external_ges=1,
logfile=None, doc_factory=POM.new_document):
import xml
if hasattr(xml, "use_pyxml"):
xml.use_pyxml()
import xml.sax.sax2exts
import xml.sax.handler
import new
handler = ContentHandler(document, doc_factory=doc_factory, logfile=logfile)
errorhandler = ErrorHandler(logfile)
# create parser
parser = xml.sax.sax2exts.XMLParserFactory.make_parser()
parser.setFeature(xml.sax.handler.feature_namespaces, namespaces)
parser.setFeature(xml.sax.handler.feature_validation, validate)
parser.setFeature(xml.sax.handler.feature_external_ges, external_ges)
parser.setFeature(xml.sax.handler.feature_external_pes, 0)
parser.setFeature(xml.sax.handler.feature_string_interning, 1)
# set handlers
parser.setContentHandler(handler)
parser.setDTDHandler(handler)
parser.setEntityResolver(handler)
parser.setErrorHandler(errorhandler)
# since the xml API provides some generic parser I can't just
# subclass I have to "patch" the object in-place with this trick.
# This is to a) make the API compatible with the HTMLParser, and b)
# allow specifing the encoding and other headers in the request.
parser.parse_orig = parser.parse
def parse(self, url, data=None, encoding=POM.DEFAULT_ENCODING,
useragent=None, accept=None):
from pycopia.WWW import urllibplus
fo = urllibplus.urlopen(url, data, encoding, useragent=useragent, accept=accept)
if logfile:
from pycopia import UserFile
fo = UserFile.FileWrapper(fo, logfile=logfile)
return self.parse_orig(fo)
parser.parse = new.instancemethod(parse, parser, parser.__class__)
return parser
示例4: get_parser
# 需要导入模块: from xml import sax [as 别名]
# 或者: from xml.sax import handler [as 别名]
def get_parser(logfile=None, namespaces=0, validate=0, external_ges=0):
handler = ContentHandler()
# create parser
parser = xml.sax.sax2exts.XMLParserFactory.make_parser()
parser.setFeature(xml.sax.handler.feature_namespaces, namespaces)
parser.setFeature(xml.sax.handler.feature_validation, validate)
parser.setFeature(xml.sax.handler.feature_external_ges, external_ges)
parser.setFeature(xml.sax.handler.feature_external_pes, 0)
parser.setFeature(xml.sax.handler.feature_string_interning, 1)
# set handlers
parser.setContentHandler(handler)
parser.setDTDHandler(handler)
parser.setEntityResolver(handler)
parser.setErrorHandler(ErrorHandler(logfile))
return parser
示例5: main
# 需要导入模块: from xml import sax [as 别名]
# 或者: from xml.sax import handler [as 别名]
def main(argv: Optional[Sequence[str]] = None) -> int:
parser = argparse.ArgumentParser()
parser.add_argument('filenames', nargs='*', help='XML filenames to check.')
args = parser.parse_args(argv)
retval = 0
handler = xml.sax.handler.ContentHandler()
for filename in args.filenames:
try:
with open(filename, 'rb') as xml_file:
xml.sax.parse(xml_file, handler)
except xml.sax.SAXException as exc:
print(f'{filename}: Failed to xml parse ({exc})')
retval = 1
return retval
示例6: test_javasax_with_skipEntity
# 需要导入模块: from xml import sax [as 别名]
# 或者: from xml.sax import handler [as 别名]
def test_javasax_with_skipEntity(self):
content = '<!DOCTYPE Message [<!ENTITY xxe SYSTEM "http://aws.amazon.com/">]><Message>error:&xxe;</Message>'
root = RootElement()
handler = XmlHandler(root, root)
parser = xml.sax.make_parser()
parser.setContentHandler(handler)
parser.setFeature(xml.sax.handler.feature_external_ges, 0)
parser.parse(StringIO(content))
self.assertEqual('Message', root.start_elements[0][0])
self.assertItemsEqual([['Message', 'error:', root]], root.end_elements)
示例7: create_parser
# 需要导入模块: from xml import sax [as 别名]
# 或者: from xml.sax import handler [as 别名]
def create_parser():
"""创建并返回一个 AIML 解析器对象。"""
parser = xml.sax.make_parser()
handler = AimlHandler("UTF-8")
parser.setContentHandler(handler)
#parser.setFeature(xml.sax.handler.feature_namespaces, True)
return parser