本文整理汇总了Python中xml.parsers.expat.ParserCreate.ExternalEntityRefHandler方法的典型用法代码示例。如果您正苦于以下问题:Python ParserCreate.ExternalEntityRefHandler方法的具体用法?Python ParserCreate.ExternalEntityRefHandler怎么用?Python ParserCreate.ExternalEntityRefHandler使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xml.parsers.expat.ParserCreate
的用法示例。
在下文中一共展示了ParserCreate.ExternalEntityRefHandler方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: parseDTDString
# 需要导入模块: from xml.parsers.expat import ParserCreate [as 别名]
# 或者: from xml.parsers.expat.ParserCreate import ExternalEntityRefHandler [as 别名]
def parseDTDString(data, path):
result = []
currentComment = [None]
parser = ParserCreate()
parser.UseForeignDTD(True)
parser.SetParamEntityParsing(XML_PARAM_ENTITY_PARSING_ALWAYS)
def ExternalEntityRefHandler(context, base, systemId, publicId):
subparser = parser.ExternalEntityParserCreate(context, 'utf-8')
subparser.Parse(data.encode('utf-8'), True)
return 1
def CommentHandler(data):
currentComment[0] = data.strip()
def EntityDeclHandler(entityName, is_parameter_entity, value, base, systemId, publicId, notationName):
result.append((unescapeEntity(entityName), currentComment[0], unescapeEntity(value.strip())))
currentComment[0] = None
parser.ExternalEntityRefHandler = ExternalEntityRefHandler
parser.CommentHandler = CommentHandler
parser.EntityDeclHandler = EntityDeclHandler
parser.Parse('<!DOCTYPE root SYSTEM "foo"><root/>', True)
for entry in result:
yield entry
示例2: raising_external_ref_handler
# 需要导入模块: from xml.parsers.expat import ParserCreate [as 别名]
# 或者: from xml.parsers.expat.ParserCreate import ExternalEntityRefHandler [as 别名]
def raising_external_ref_handler(*args, **kwargs):
parser = ParserCreate(*args, **kwargs)
parser.ExternalEntityRefHandler = lambda *x: 0
try:
feature = "http://apache.org/xml/features/disallow-doctype-decl"
parser._reader.setFeature(feature, True)
except AttributeError:
pass
return parser