def endElement(self, name): if not self._eat_tag: XMLFilterBase.endElement(self, name) if name == 'text' and self._catch_full_line: self._catch_full_line = False elif name == 'dialogue_act' and self._write_full_line: self._write_full_line = False if len(self._full_line) < self._da_line_len: self._whole_line.append("... (missing)") self.errorCallback() line = self._full_line[:self._da_line_len] del self._full_line[:self._da_line_len] self._da_line_len = 0 line = u' '.join(line) writer = self.getContentHandler() writer.characters('\n' + ' '*self.TAG_INDENT) attrs = {'type': self.text_type} attrs.update(self._da_attrs) writer.startElement('parametrized_act', attrs) writer.characters('\n' + ' '*self.CHAR_INDENT) writer.characters(line) writer.characters('\n' + ' '*self.TAG_INDENT) writer.endElement('parametrized_act') elif name == 'utterance': if self._full_line and self._da_count != 0: self.errorCallback() elif name == 'parametrized_act': self._eat_tag = False
def endElement(self, name): if len(self.header) == 1 or name == 'xcb': XMLFilterBase.endElement(self, name) if name == 'xcb': self.header.pop(0) elif name == 'struct' or name == 'union': assert getattr(self, name) is not None self.setTypeSize(getattr(self, name), self.totalsize) setattr(self, name, None) del self.totalsize
def test_filter_basic(self): result = BytesIO() gen = XMLGenerator(result) filter = XMLFilterBase() filter.setContentHandler(gen) filter.startDocument() filter.startElement('doc', {}) filter.characters('content') filter.ignorableWhitespace(' ') filter.endElement('doc') filter.endDocument() self.assertEqual(result.getvalue(), start + b'<doc>content </doc>')
def test_filter_basic(): result = StringIO() gen = XMLGenerator(result) filter = XMLFilterBase() filter.setContentHandler(gen) filter.startDocument() filter.startElement("doc", {}) filter.characters("content") filter.ignorableWhitespace(" ") filter.endElement("doc") filter.endDocument() return result.getvalue() == start + "<doc>content </doc>"
def test_filter_basic(self): result = BytesIO() gen = XMLGenerator(result) filter = XMLFilterBase() filter.setContentHandler(gen) filter.startDocument() filter.startElement("doc", {}) filter.characters("content") filter.ignorableWhitespace(" ") filter.endElement("doc") filter.endDocument() self.assertEqual(result.getvalue(), start + b"<doc>content </doc>")
def endElement(self, name): if not self._eat_tag: XMLFilterBase.endElement(self, name) if name == 'text' and self._write_tag: self._write_tag = False writer = self.getContentHandler() writer.characters('\n' + ' '*self.TAG_INDENT) writer.startElement('text', {'type': self._new_type}) if self._tags: line = self._tags.pop(0) writer.characters('\n' + ' '*self.CHAR_INDENT) writer.characters(line) writer.characters('\n' + ' '*self.TAG_INDENT) writer.endElement('text')
def endElement(self, name): if name == "record": XMLFilterBase.endElement(self, name) self.processed += 1 if self.processed % self.groups_of == 0: XMLFilterBase.endElement(self, "collection") XMLFilterBase.endPrefixMapping(self, "") XMLFilterBase.endDocument(self) elif name != "collection": XMLFilterBase.endElement(self, name)
def endElement(self, name): XMLFilterBase.endElement(self, name) if name == 'xcb': self.endScope()
def endElement(self, name): self._complete_text_node() XMLFilterBase.endElement(self, name) return
# regression test for SAX 2.0
def endElement(self, name): if name == 'import': self.ensure(self.inimport) self.inimport = None return XMLFilterBase.endElement(self, name)
def endElement(self, name): if self.in_universe >= 0: self.in_universe -= 1 if self.in_universe == -1: # send the recorded tags in the new format if not (self.cell is None and self.cell_active is None): if self.cell is None: self.cell = numpy.identity(3, float)*20.0 if self.cell_active is None: self.cell_active = numpy.zeros(3, bool) XMLFilterBase.startElement(self, "unit_cell", Attributes({"label": "cell"})) # matrix XMLFilterBase.startElement(self, "array", Attributes({"label": "matrix"})) XMLFilterBase.startElement(self, "shape", Attributes({})) XMLFilterBase.characters(self, "3 3") XMLFilterBase.endElement(self, "shape") XMLFilterBase.startElement(self, "cells", Attributes({})) XMLFilterBase.characters(self, " ".join(str(v) for v in self.cell.ravel())) XMLFilterBase.endElement(self, "cells") XMLFilterBase.endElement(self, "array") # matrix XMLFilterBase.startElement(self, "array", Attributes({"label": "active"})) XMLFilterBase.startElement(self, "shape", Attributes({})) XMLFilterBase.characters(self, "3") XMLFilterBase.endElement(self, "shape") XMLFilterBase.startElement(self, "cells", Attributes({})) XMLFilterBase.characters(self, " ".join(str(v) for v in self.cell_active)) XMLFilterBase.endElement(self, "cells") XMLFilterBase.endElement(self, "array") # end unit cell XMLFilterBase.endElement(self, "unit_cell") if self.recording is None: XMLFilterBase.endElement(self, name) else: if name == "array" and self.recording == "cell": self.recording = None words = (" ".join(self.cell)).split()[2:] self.cell = numpy.array([float(v) for v in words]) self.cell.shape = (3,3) if name == "array" and self.recording == "cell_active": self.recording = None words = (" ".join(self.cell_active)).split()[1:] self.cell_active = numpy.array([eval(v) for v in words]) self.cell_active.shape = (3,)