def deserialize(self, source, prefixes=None, strict=False, as_attribute=None, as_list=None, as_attribute_of_element=None): if isinstance(source, basestring): try: if os.path.exists(source): xtr = XmlTextReader(StreamReader(source)) except ValueError: xtr = XmlTextReader(StringReader(source)) else: xtr = XmlTextReader(StringReader(source)) elif hasattr(source, 'read'): xtr = XmlTextReader(StringReader(source.read())) settings = XmlReaderSettings() settings.ProhibitDtd = True reader = XmlReader.Create(xtr, settings) document = Document() document.as_attribute = as_attribute or {} document.as_list = as_list or {} document.as_attribute_of_element = as_attribute_of_element or {} self._deserialize(reader, document) xtr.Close() reader.Close() return document
def parse(xml): # see issue 379, and https://stackoverflow.com/questions/215854/ settings = XmlReaderSettings() settings.XmlResolver = None settings.DtdProcessing = DtdProcessing.Ignore settings.ProhibitDtd = False with XmlReader.Create(xml, settings) as xr: while xr.Read(): xr.MoveToContent() node = XmlNode(xr) yield node if xr.IsEmptyElement: node.nodeType = XmlNodeType.EndElement del node.attributes yield node
def parse(xml): # see issue 379, and https://stackoverflow.com/questions/215854/ settings = XmlReaderSettings(); settings.XmlResolver = None; settings.DtdProcessing = DtdProcessing.Ignore; settings.ProhibitDtd = False; with XmlReader.Create(xml, settings) as xr: while xr.Read(): xr.MoveToContent() node = XmlNode(xr) yield node if (xr.IsEmptyElement): node.nodeType = XmlNodeType.EndElement del node.attributes yield node