本文整理汇总了Python中xml.etree.ElementTree.TreeBuilder.data方法的典型用法代码示例。如果您正苦于以下问题:Python TreeBuilder.data方法的具体用法?Python TreeBuilder.data怎么用?Python TreeBuilder.data使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xml.etree.ElementTree.TreeBuilder
的用法示例。
在下文中一共展示了TreeBuilder.data方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
def __init__(self, filename):
""" Opens file the parser needs to read from """
self.filename = filename.replace(".jack", "")
try:
inFile = open(filename, 'r')
self.code = inFile.read()
inFile.close()
except IOError:
print "Unable to open input file."
exit(-2)
# Setup the Element Tree
builder = TreeBuilder()
builder.start("tokens", {})
builder.data("\n")
self.etree = ElementTree(builder.end("tokens"))
# Remove Comments
self.removeComments()
# Strip
self.code = str.strip(self.code)
# Set up enum of token types
self.KEYWORDS = r'(\Aclass\b)|(\Aconstructor\b)|(\Afunction\b)|(\Amethod\b)|(\Afield\b)|(\Astatic\b)|(\Avar\b)|(\Aint\b)|(\Achar\b)|(\Aboolean\b)|(\Avoid\b)|(\Atrue\b)|(\Afalse\b)|(\Anull\b)|(\Athis\b)|(\Alet\b)|(\Ado\b)|(\Aif\b)|(\Aelse\b)|(\Awhile\b)|(\Areturn\b)'
self.SYMBOLS = '[(\{)|(\})|(\()|(\))|(\[)|(\])|(\.)|(,)|(;)|(\+)|(\-)|(\*)|(\/)|(&)|(|)|(<)|(>)|(=)|(~)]'
# Set up token as blank
self.token = 'null'
self.tokenType = 'NULL'
示例2: XmppXmlHandler
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
class XmppXmlHandler(object):
STREAM_TAG='{http://etherx.jabber.org/streams}stream'
def __init__(self):
self._stack = 0
self._builder = TreeBuilder()
self._results = deque()
def data(self, data):
self._builder.data(data)
def start(self, tag, attrib):
if tag == self.STREAM_TAG:
return
self._builder.start(tag, attrib)
self._stack += 1
def end(self, tag):
self._stack -= 1
elem = self._builder.end(tag)
if self._stack == 0:
self._results.append(elem)
def get_elem(self):
"""If a top-level XML element has been completed since the last call to
get_elem, return it; else return None."""
try:
return self._results.popleft()
except IndexError:
return None
示例3: __init__
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
def __init__(self, filename):
""" Opens file the parser needs to read from """
self.filename = filename.replace(".jack", "")
try:
inFile = open(filename, 'r')
self.code = inFile.read()
inFile.close()
except IOError:
print "Unable to open input file."
exit(-2)
# Setup the Element Tree
builder = TreeBuilder()
builder.start("tokens", {})
builder.data("\n")
self.etree = ElementTree(builder.end("tokens"))
# Remove Comments
self.removeComments()
# Strip
self.code = str.strip(self.code)
# Set up enum of token types
self.KEYWORDS = '(class)|(constructor)|(function)|(method)|(field)|(static)|(var)|(int)|(char)|(boolean)|(void)|(true)|(false)|(null)|(this)|(let)|(do)|(if)|(else)|(while)|(return)'
self.SYMBOLS = '[(\{)|(\})|(\()|(\))|(\[)|(\])|(\.)|(,)|(;)|(\+)|(\-)|(\*)|(\/)|(&)|(|)|(<)|(>)|(=)|(~)]'
# Set up token as blank
self.token = 'null'
self.tokenType = 'NULL'
示例4: compileClass
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
def compileClass(self):
""" Compiles a complete class """
if (self.DEBUG): print "Compiling class"
# Add non-terminal break for the class
builder = TreeBuilder()
builder.start("class", {})
builder.data("\n")
self.etree = ElementTree(builder.end("class"))
self.head.append(self.etree.getroot())
# Check for class keyword
self.validateAndRead("keyword", "class")
# Check for identifier
self.validateAndRead("identifier")
# Check for { symbol
self.validateAndRead("symbol", '{')
# Check for Class Vars
while (self.compileClassVarDec()):
""" BLANK ON PURPOSE!!! """
# Check for Subroutines
while (self.compileSubroutine()):
""" BLANK ON PURPOSE!!! """
# Check for } symbol
self.validateAndRead("symbol", '}')
示例5: dumpGEXF
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
def dumpGEXF(self,targetfp,projectName):
self.ensureDumpBase()
tb=TreeBuilder()
tb.start("gexf",{"xmlns":"http://www.gexf.net/1.2draft","version":"1.2"})
tb.start("meta",{"lastmodifieddate":str(datetime.datetime.now())})
tb.start("creator",{})
tb.data("LAVI Collector")
tb.end("creator")
tb.start("description",{})
tb.data(projectName)
tb.end("description")
tb.end("meta")
tb.start("graph",{"mode":"dynamic","start":formatTstamp(self.mint),"end":formatTstamp(self.maxt)})
tb.start("nodes",{})
for id,email,mint,maxt in self.nodesIterator():
tb.start("node",{"id":id,"label":email,"start":formatTstamp(mint),"end":formatTstamp(maxt)})
tb.end("node")
tb.end("nodes")
tb.start("edges",{})
for id,sender,rec,tstamp in self.edgesIterator():
tb.start("edge",{"id":id, "source":sender,"target":rec,"start":formatTstamp(tstamp),"end":formatTstamp(tstamp)})
tb.end("edge")
tb.end("edges")
tb.end("graph")
tb.end("gexf")
et=ElementTree(tb.close())
et.write(targetfp, encoding="UTF-8")
示例6: build
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
def build(self, root=None):
if root is None:
was_root = True
root = TreeBuilder()
else:
was_root = False
root.start(self.tagname(), self.attrs())
for i, child in enumerate(self.children):
if isinstance(child, HTMLBuilder):
child.build(root=root)
else:
if i in self._formatted:
try:
proxy = TreeProxy(root)
parser = XMLParser(html=True, target=proxy)
parser.feed(child)
proxy.cleanup()
except Exception as e:
print("Bad formatting", e)
root.data(str(child))
else:
root.data(str(child))
root.end(self.tagname())
if was_root:
root = root.close()
return str(tostring(root, method="html").decode('utf-8'))
示例7: parse
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
def parse(self, encoding=None, errors='strict', **kwargs):
"""
Return the contents of toolbox settings file with a nested structure.
:param encoding: encoding used by settings file
:type encoding: str
:param errors: Error handling scheme for codec. Same as ``decode()`` builtin method.
:type errors: str
:param kwargs: Keyword arguments passed to ``StandardFormat.fields()``
:type kwargs: dict
:rtype: ElementTree._ElementInterface
"""
builder = TreeBuilder()
for mkr, value in self.fields(encoding=encoding, errors=errors, **kwargs):
# Check whether the first char of the field marker
# indicates a block start (+) or end (-)
block=mkr[0]
if block in ("+", "-"):
mkr=mkr[1:]
else:
block=None
# Build tree on the basis of block char
if block == "+":
builder.start(mkr, {})
builder.data(value)
elif block == '-':
builder.end(mkr)
else:
builder.start(mkr, {})
builder.data(value)
builder.end(mkr)
return builder.close()
示例8: addTerminal
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
def addTerminal(self):
""" Adds a terminal element to the XML tree """
builder = TreeBuilder()
builder.start(self.tag, {})
builder.data(" %s " % (self.data))
temp = builder.end(self.tag)
temp.tail = "\n"
self.head[-1].append(temp)
示例9: addNonTerminal
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
def addNonTerminal(self, name):
""" Adds a non-terminal element to the XML tree """
builder = TreeBuilder()
builder.start(name, {})
builder.data("\n")
temp = builder.end(name)
temp.tail = "\n"
self.head[-1].append(temp)
self.head.append(temp)
示例10: addElement
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
def addElement(self, tag):
""" Adds the current token to the XML ElementTree """
e = self.etree.getroot()
builder = TreeBuilder()
builder.start(tag, {})
builder.data(" %s " % (self.token))
temp = builder.end(tag)
temp.tail = "\n"
e.append(temp)
return self.token
示例11: save
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
def save(self):
'''saves action to file'''
builder = TreeBuilder()
builder.start("action", { "id" : str(self.id), "type" : str(self.type) })
builder.start("name", {})
builder.data(self.name)
builder.end("name")
self._write_type(builder)
builder.end("action")
doc = ElementTree(builder.close())
doc.write(self.get_file(self.id))
示例12: _get_new_album_body
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
def _get_new_album_body(self, title):
'''
Формирует XML-элемент для нового альбома.
@param title: string
@return Element
'''
builder = TreeBuilder(Element)
builder.start('entry', {'xmlns': ATOM_NS})
builder.start('title', {})
builder.data(title.decode('utf8'))
builder.end('title')
builder.end('entry')
node = builder.close()
return tostring(node)
示例13: _XHTMLParser
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
class _XHTMLParser(parser.HTMLParser):
# A helper class for parsing XHTML into an xml.etree.ElementTree
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.builder = TreeBuilder(element_factory=Element)
def handle_starttag(self, tag, attrs):
self.builder.start(tag, dict(attrs),)
def handle_endtag(self, tag):
self.builder.end(tag)
def handle_data(self, data):
self.builder.data(data)
示例14: XmppXmlHandler
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
class XmppXmlHandler(object):
STREAM_TAG = '{http://etherx.jabber.org/streams}stream'
def __init__(self):
self._stack = 0
self._builder = TreeBuilder()
self._builder.start('root', {})
self._results = deque()
def data(self, data):
self._builder.data(data)
def start(self, tag, attrib):
if tag == self.STREAM_TAG:
return
self._builder.start(tag, attrib)
self._stack += 1
def end(self, tag):
self._stack -= 1
elem = self._builder.end(tag)
if self._stack == 0:
self._results.append(elem)
def get_elem(self):
"""If a top-level XML element has been completed since the last call to
get_elem, return it; else return None."""
try:
elem = self._results.popleft()
if elem.tag.endswith('failure') or elem.tag.endswith('error'):
raise Exception("XMPP Error received - %s" % elem.tag)
return elem
except IndexError:
return None
示例15: data2builder
# 需要导入模块: from xml.etree.ElementTree import TreeBuilder [as 别名]
# 或者: from xml.etree.ElementTree.TreeBuilder import data [as 别名]
def data2builder(data, tag_name="data", builder=None):
"""pass in a python data structure and get back a etree TreeBuilder
"""
if builder == None:
builder = TreeBuilder()
t = type(data)
if t == NoneType:
builder.start(tag_name, {})
builder.end(tag_name)
elif t in (StringType, UnicodeType, IntType, FloatType, BooleanType, LongType):
builder.start(tag_name, {})
builder.data(unicode(data))
builder.end(tag_name)
elif t in (ListType, TupleType):
for value in data:
data2builder(value, tag_name=tag_name, builder=builder)
elif t == DictionaryType:
builder.start(tag_name, {})
for key, value in data.items():
data2builder(value, tag_name=key, builder=builder)
builder.end(tag_name)
else:
raise Exception("uhoh I can't handle type %s" % t)
return builder