def read(self, textreader): settings = XmlReaderSettings() settings.IgnoreWhitespace = True reader = XmlReader.Create(textreader, settings) self._currentElement = None nodeTypeHandlers = { XmlNodeType.Element : self.onStartElement, XmlNodeType.EndElement : self.onEndElement, XmlNodeType.Text : self.onText, XmlNodeType.XmlDeclaration: ignore } try: while reader.Read(): handler = nodeTypeHandlers.get(reader.NodeType) if handler: handler(reader) else: print reader.NodeType raise XmlException("invalid data at line %d" % reader.LineNumber) finally: reader.Close()
def __init__(self, target=None, validating=False): if not compas.IPY: raise Exception('CLRXMLTreeParser can only be used from IronPython') settings = XmlReaderSettings() settings.IgnoreComments = True settings.IgnoreProcessingInstructions = True settings.IgnoreWhitespace = True if not validating: settings.DtdProcessing = DtdProcessing.Ignore settings.ValidationType = getattr(ValidationType, 'None') else: settings.DtdProcessing = DtdProcessing.Parse settings.ValidationType = ValidationType.DTD self.settings = settings self._target = target or ET.TreeBuilder() self._buffer = [] self._document_encoding = 'UTF-8' # default
def __init__(self, target=DoctypeTreeBuilder(), validating=False): """ :keyword xml.etree.ElementTree.TreeBuilder target: the target object (optional; defaults to :class:`aglyph._compat.DoctypeTreeBuilder`) :keyword bool validating: specify ``True`` to use a validating parser """ settings = XmlReaderSettings() settings.IgnoreComments = True settings.IgnoreProcessingInstructions = True settings.IgnoreWhitespace = True if not validating: settings.DtdProcessing = DtdProcessing.Ignore settings.ValidationType = getattr(ValidationType, "None") else: settings.DtdProcessing = DtdProcessing.Parse settings.ValidationType = ValidationType.DTD self.settings = settings self.version = platform.python_compiler() self.__log.debug("ET parser version is %s", self.version) self._target = target self._buffer = []
def __init__(self, target=DoctypeTreeBuilder(), validating=False): """ :keyword xml.etree.ElementTree.TreeBuilder target: the target object (optional; defaults to :class:`aglyph._compat.DoctypeTreeBuilder`) :keyword bool validating: specify ``True`` to use a validating parser """ settings = XmlReaderSettings() settings.IgnoreComments = True settings.IgnoreProcessingInstructions = True settings.IgnoreWhitespace = True if not validating: settings.DtdProcessing = DtdProcessing.Ignore settings.ValidationType = getattr(ValidationType, "None") else: settings.DtdProcessing = DtdProcessing.Parse settings.ValidationType = ValidationType.DTD self.settings = settings self.version = platform.python_compiler() self.__log.debug("ET parser version is %s", self.version) self._target = target self._buffer = []