codekingpro/portable-devtools
114k
1# defusedxml2#3# Copyright (c) 2013 by Christian Heimes <christian@python.org>4# Licensed to PSF under a Contributor Agreement.5# See https://www.python.org/psf/license for licensing details.6"""Defused xml.dom.minidom7"""8from __future__ import print_function, absolute_import9 10from xml.dom.minidom import _do_pulldom_parse11from . import expatbuilder as _expatbuilder12from . import pulldom as _pulldom13 14__origin__ = "xml.dom.minidom"15 16 17def parse(18 file, parser=None, bufsize=None, forbid_dtd=False, forbid_entities=True, forbid_external=True19):20 """Parse a file into a DOM by filename or file object."""21 if parser is None and not bufsize:22 return _expatbuilder.parse(23 file,24 forbid_dtd=forbid_dtd,25 forbid_entities=forbid_entities,26 forbid_external=forbid_external,27 )28 else:29 return _do_pulldom_parse(30 _pulldom.parse,31 (file,),32 {33 "parser": parser,34 "bufsize": bufsize,35 "forbid_dtd": forbid_dtd,36 "forbid_entities": forbid_entities,37 "forbid_external": forbid_external,38 },39 )40 41 42def parseString(43 string, parser=None, forbid_dtd=False, forbid_entities=True, forbid_external=True44):45 """Parse a file into a DOM from a string."""46 if parser is None:47 return _expatbuilder.parseString(48 string,49 forbid_dtd=forbid_dtd,50 forbid_entities=forbid_entities,51 forbid_external=forbid_external,52 )53 else:54 return _do_pulldom_parse(55 _pulldom.parseString,56 (string,),57 {58 "parser": parser,59 "forbid_dtd": forbid_dtd,60 "forbid_entities": forbid_entities,61 "forbid_external": forbid_external,62 },63 )64 