本文整理汇总了Python中xml.sax.saxutils.XMLFilterBase.startElement方法的典型用法代码示例。如果您正苦于以下问题:Python XMLFilterBase.startElement方法的具体用法?Python XMLFilterBase.startElement怎么用?Python XMLFilterBase.startElement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xml.sax.saxutils.XMLFilterBase
的用法示例。
在下文中一共展示了XMLFilterBase.startElement方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: startElement
# 需要导入模块: from xml.sax.saxutils import XMLFilterBase [as 别名]
# 或者: from xml.sax.saxutils.XMLFilterBase import startElement [as 别名]
def startElement(self, name, attrs):
if name == 'xcb':
self.header.insert(0, attrs['header'])
elif name == 'field':
size = self.types.get(attrs['type'], 0)
if self.struct is not None:
self.totalsize += size
elif self.union is not None:
self.totalsize = max(self.totalsize, size)
attrs = AttributesUnion(attrs, bytes=str(size))
elif name == 'pad':
assert self.union is None
if self.struct is not None:
self.totalsize += int(attrs['bytes'])
elif name == 'xidtype':
self.setTypeSize(attrs['name'], 4)
elif name == 'typedef':
self.setTypeSize(attrs['newname'], self.types[attrs['oldname']])
elif name == 'struct' or name == 'union':
assert self.struct is None and self.union is None
setattr(self, name, attrs['name'])
self.totalsize = 0
if len(self.header) == 1 or name == 'xcb':
XMLFilterBase.startElement(self, name, attrs)
示例2: startElement
# 需要导入模块: from xml.sax.saxutils import XMLFilterBase [as 别名]
# 或者: from xml.sax.saxutils.XMLFilterBase import startElement [as 别名]
def startElement(self, name, attrs):
if name == 'text' and attrs.get('type') == self._new_type:
self._eat_tag = True
else:
self._eat_tag = False
if name == 'text' and attrs.get('type') == self._after:
self._write_tag = True
if not self._eat_tag:
XMLFilterBase.startElement(self, name, attrs)
示例3: startElement
# 需要导入模块: from xml.sax.saxutils import XMLFilterBase [as 别名]
# 或者: from xml.sax.saxutils.XMLFilterBase import startElement [as 别名]
def startElement(self, name, attrs):
assert self.inimport is None
if name == 'import':
self.inimport = ""
return
XMLFilterBase.startElement(self, name, attrs)
if name == 'xcb':
seen[attrs['header']] = True
self.ensure('xproto')
示例4: test_filter_basic
# 需要导入模块: from xml.sax.saxutils import XMLFilterBase [as 别名]
# 或者: from xml.sax.saxutils.XMLFilterBase import startElement [as 别名]
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>"
示例5: test_filter_basic
# 需要导入模块: from xml.sax.saxutils import XMLFilterBase [as 别名]
# 或者: from xml.sax.saxutils.XMLFilterBase import startElement [as 别名]
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>")
示例6: startElement
# 需要导入模块: from xml.sax.saxutils import XMLFilterBase [as 别名]
# 或者: from xml.sax.saxutils.XMLFilterBase import startElement [as 别名]
def startElement(self, name, attrs):
if self.in_universe >= 0:
self.in_universe += 1
if name == "zml_file":
if attrs.getValue("version") != "0.1":
raise FilterError, "Only format 0.1 is supported in this handler."
attrs = Attributes({"version": "0.2"})
elif name == "model_object" and attrs["class"] == "Universe":
self.in_universe = 0
elif self.in_universe == 1:
if name == "array" and attrs["label"] == "cell":
self.recording = "cell"
self.cell = []
elif name == "array" and attrs["label"] == "cell_active":
self.recording = "cell_active"
self.cell_active = []
if self.recording is None:
XMLFilterBase.startElement(self, name, attrs)
示例7: startElement
# 需要导入模块: from xml.sax.saxutils import XMLFilterBase [as 别名]
# 或者: from xml.sax.saxutils.XMLFilterBase import startElement [as 别名]
def startElement(self, name, attrs):
attnames = []
if name == 'xcb':
self.startScope(attrs['header'])
elif name in ['struct', 'union', 'xidtype', 'enum', 'event', 'eventcopy', 'error', 'errorcopy']:
self.declareType(attrs['name'])
attnames = ['name']
if name.endswith('copy'):
attnames.append('ref')
elif name == 'typedef':
self.declareType(attrs['newname'])
attnames = ['oldname', 'newname']
elif name == 'valueparam':
attnames = ['value-mask-type']
elif attrs.has_key('type'):
attnames = ['type']
newattrs = {}
for attname in attnames:
newattrs[attname] = self.getQualifiedType(attrs[attname])
if newattrs:
attrs = AttributesUnion(attrs, **newattrs)
XMLFilterBase.startElement(self, name, attrs)
示例8: startElement
# 需要导入模块: from xml.sax.saxutils import XMLFilterBase [as 别名]
# 或者: from xml.sax.saxutils.XMLFilterBase import startElement [as 别名]
def startElement(self, name, attrs):
self._complete_text_node()
XMLFilterBase.startElement(self, name, attrs)
return
示例9: endElement
# 需要导入模块: from xml.sax.saxutils import XMLFilterBase [as 别名]
# 或者: from xml.sax.saxutils.XMLFilterBase import startElement [as 别名]
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,)