本文整理汇总了Python中xml.sax.saxutils.XMLFilterBase类的典型用法代码示例。如果您正苦于以下问题:Python XMLFilterBase类的具体用法?Python XMLFilterBase怎么用?Python XMLFilterBase使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了XMLFilterBase类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(
self, upstream, downstream, tag_name,
layers_blacklist=None, layers_whitelist=None):
XMLFilterBase.__init__(self, upstream)
self._downstream = downstream
self._accumulator = []
assert layers_blacklist is not None or layers_whitelist is not None, \
"either layers_blacklist OR layers_whitelist must be set"
assert not (
layers_blacklist is not None and
layers_whitelist is not None), \
"only either layers_blacklist OR layers_whitelist can be set"
if layers_blacklist is not None:
layers_blacklist = [layer.lower() for layer in layers_blacklist]
if layers_whitelist is not None:
layers_whitelist = [layer.lower() for layer in layers_whitelist]
self.layers_blacklist = layers_blacklist
self.layers_whitelist = layers_whitelist
self.layers_path = []
self.in_name = False
self.tag_name = tag_name
self.level = 0
示例2: endElement
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
示例3: startElement
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)
示例4: characters
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)
示例5: __init__
def __init__ (self, upstream, SkipEvents = False):
self.EventCounters = {}
self.TotalEventCount = 0
self.SkipEvents = SkipEvents
self.NewEventType = True
self.AccumulatingEventContent = False
self.CurrentEventContent = ''
self.StreamCopyEnabled = False
# This buffer will be used to compile a copy of the incoming EDXML
# stream that has all event data filtered out. We use this stripped
# copy to do RelaxNG validation, as Python has no incremental XML
# validator like for instance PHP does.
self.DefinitionsXMLStringIO = StringIO()
# And this is the XMLGenerator instance that we will use
# to fill the buffer.
self.DefinitionsXMLGenerator = XMLGenerator(self.DefinitionsXMLStringIO, 'utf-8')
"""EDXMLDefinitions instance"""
self.Definitions = EDXMLDefinitions()
# We want the EDXMLDefinitions instance to call our
# error handler, so anyone who wishes to extend the EDXMLParser
# class can reimplement it to handle all generated errors.
self.Definitions.Error = self.Error
XMLFilterBase.__init__(self, upstream)
EDXMLBase.__init__(self)
示例6: __init__
def __init__(self, file):
XMLFilterBase.__init__(self)
self.generator = XMLGenerator(file, 'UTF-8')
self.generator.startPrefixMapping(u'', u'http://www.eucalyptus.com/ns/reporting/export/2012-08-24/')
self.replyData = StringIO()
self.replyGenerator = XMLGenerator( self.replyData, 'UTF-8' )
self.switchTarget( self.replyGenerator )
示例7: __init__
def __init__(self, upstream, downstream, text_filter, manualOverride = False):
XMLFilterBase.__init__(self, upstream)
self._downstream = downstream
self._accumulator = []
self.text_filter = text_filter
self.should_filter = False
self.manualOverride = manualOverride # Set this to True if you want text_filter never to run
return
示例8: startPrefixMapping
def startPrefixMapping(self, prefix, uri):
if self.prefixes.has_key(prefix):
if self.prefixesStack.has_key(prefix):
self.prefixesStack[prefix].append(self.prefixes[prefix])
else:
self.prefixesStack[prefix] = [self.prefixes[prefix]]
self.prefixes[prefix] = uri
XMLFilterBase.startPrefixMapping(self, prefix, uri)
示例9: endPrefixMapping
def endPrefixMapping(self, prefix):
if self.prefixesStack.has_key(prefix):
self.prefixes[prefix] = self.prefixesStack[prefix][-1]
del(self.prefixesStack[prefix][-1])
if self.prefixesStack[prefix] == []:
del (self.prefixesStack[prefix])
else:
del(self.prefixes[prefix])
XMLFilterBase.endPrefixMapping(self, prefix)
示例10: startElement
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)
示例11: characters
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)
示例12: startElement
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')
示例13: __init__
def __init__(self, upstream, downstream):
XMLFilterBase.__init__(self, upstream)
self._downstream = downstream
self._accumulator = []
#self.padding_level = -1 # for pretty debug printing
self.current_element = None # what element are we inside?
self.passthrough = False # allow current element through the filter?
# Placeholders for the attributes for the builder and shape elements...
self.builder_info = None
self.shape_info = None
示例14: __init__
def __init__(self, upstream, downstream, filename,chunksize = 100):
XMLFilterBase.__init__(self, upstream)
self.handlers = []
self.pushHandler(downstream)
self.filename = filename
self.chunksize = int(chunksize)
self.rec_count = 0
self.chunknames = []
self.tempdir = ''
self.verbose = False
示例15: endElement
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