Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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