def characters(self, text): if self.recording == "cell": self.cell.append(text) elif self.recording == "cell_active": self.cell_active.append(text) elif self.recording is None: XMLFilterBase.characters(self, text)
def characters(self, chars): words = self.createWords(chars) if self._catch_full_line: self._full_line.extend(words) self._whole_line.extend(words) if self._write_full_line: self._da_line_len += len(words) if not self._eat_tag: XMLFilterBase.characters(self, chars)
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 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,)
def characters(self, content): if len(self.header) == 1: XMLFilterBase.characters(self, content)
def _complete_text_node(self): if self._accumulator: XMLFilterBase.characters(self, "".join(self._accumulator)) self._accumulator = [] return
def _complete_text_node(self): if self._accumulator: XMLFilterBase.characters(self, ''.join(self._accumulator)) self._accumulator = [] return
def characters(self, content): if self.context().rule==None: XMLFilterBase.characters(self, content) else: self.context().content += content
def characters(self, content): if self.context().rule == None: XMLFilterBase.characters(self, content) else: self.context().content += content
# regression test for SAX 2.0
def characters(self, chars): if not self._eat_tag: XMLFilterBase.characters(self, chars)
def characters(self, content): if self.inimport is not None: self.inimport += content else: XMLFilterBase.characters(self, content)