def test_et(): """ElementTree""" _table = et.Element('table') for row in table: tr = et.SubElement(_table, 'tr') for c in row.values(): et.SubElement(tr, 'td').text = str(c) et.tostring(_table)
def main(bgffile,xbgffile): seq = ET.Element(slpsns.xbgf_('sequence')) rr = ET.SubElement(seq,slpsns.xbgf_('reroot')) for r in ET.XML('<list>'+''.join(open(bgffile,'r').readlines()).strip()+'</list>').findall('*'): x = ET.SubElement(rr,'root') x.text = r.text ET.ElementTree(seq).write(xbgffile) return
def test_et(): """ElementTree""" _table = et.Element("table") for row in table: tr = et.SubElement(_table, "tr") for c in row.values(): et.SubElement(tr, "td").text = str(c) et.tostring(_table)
def getXml(self): #print 'Getting the XML of production...' self.ex = ET.Element(slpsns.bgf_('production')) if self.label != '': ET.SubElement(self.ex, 'label').text = self.label ET.SubElement(self.ex, 'nonterminal').text = str(self.nt) self.ex.append(self.expr.getXml()) return self.ex
def getXml(self): #print 'Getting the XML of selectable',self.sel,'...' self.ex = ET.Element(slpsns.bgf_('expression')) self.xml = ET.SubElement(self.ex, 'selectable') ET.SubElement(self.xml, 'selector').text = self.sel if self.expr: self.xml.append(self.expr.getXml()) # troubleshooting? return self.ex
def parsefigure(self,line): if line[1:-1].split('.')[-1] in ('png','jpg','gif'): l=ET.SubElement(self.cont, "img") l.attrib['alt']=line[1:-1] l.attrib['src']=line[1:-1] else: l=ET.SubElement(self.cont, "a") l.text=line[1:-1] l.attrib['href']=line[1:-1]
def parseequation(self,line): text=str(py2tex.tex(line[1:-1])) fn=textopng.textopng('$$%s$$' % text) ET.SubElement(self.cont, "p").text=line ET.SubElement(self.cont, "p").text=text l=ET.SubElement(self.cont, "center") l=ET.SubElement(l,"img") l.attrib['alt']=line l.attrib['src']=fn
def etree(self): spec = etree.Element("spec") name = etree.SubElement(spec, "name") name.text = self.name fmt = etree.SubElement(spec, "ctypes_format") fmt.text = str(self.Format) num = etree.SubElement(spec, "number") num.text = str(self.num) return(spec)
def getInfo(): root = ET.Element('uclassify', xmlns='http://api.uclassify.com/1/RequestSchema', version='1.01') readCalls = ET.SubElement(root, 'readCalls', readApiKey=readKey) getInformation = ET.SubElement(readCalls, 'getInformation', id='GetInformation', classifierName='subjects') return root
def update_comment(self, comment_id, body): """ Update a specific comment. This can be used to edit the content of an existing comment. """ path = '/comments/%u.xml' % comment_id req = ET.Element('request') #ET.SubElement(req, 'comment_id').text = str(int(comment_id)) comment = ET.SubElement(req, 'comment') ET.SubElement(comment, 'body').text = unicode(body) return self._request(path, req, put=True)
def update_todo_item(self, item_id, content, party_id=None, notify=False): """ Modifies an existing item. The values work much like the "create item" operation, so you should refer to that for a more detailed explanation. """ path = '/todo_items/%u.xml' % item_id req = ET.Element('todo-item') ET.SubElement(req, 'content').text = unicode(content) if party_id is not None: ET.SubElement(req, 'responsible-party').text = str(party_id) ET.SubElement(req, 'notify').text = str(bool(notify)).lower() return self._request(path, req, put=True)
def _onTopic(self, topicObj): if topicObj.isAll(): self.last_elem = self.tree return if self.roots: this_elem = ET.SubElement(self.roots[-1], 'topic', {'id': topicObj.getNodeName()}) else: this_elem = ET.Element('topic', {'id': topicObj.getNodeName()}) req, opt = topicObj.getArgs() req = req or () opt = opt or () desc_elem = ET.SubElement(this_elem, 'description') topicDesc = topicObj.getDescription() if topicDesc: desc_elem.text = ' '.join(topicDesc.split()) else: desc_elem.text = "UNDOCUMENTED" argDescriptions = topicObj.getArgDescriptions() # pubsub way of getting known_args known_args = [] parent = topicObj.getParent() while parent: if parent in self.known_topics: p_req, p_opt = parent.getArgs() if p_req: known_args.extend(p_req) if p_opt: known_args.extend(p_opt) parent = parent.getParent() # there is probably a cleaner way to do this if req or opt: spec = ET.SubElement(this_elem, 'listenerspec') for arg in req: if arg in known_args: continue arg_elem = ET.SubElement(spec, 'arg', {'id': arg}) arg_elem.text = ' '.join( argDescriptions.get(arg, 'UNDOCUMENTED').split()) for arg in opt: if arg in known_args: continue arg_elem = ET.SubElement(spec, 'arg', { 'id': arg, 'optional': 'True' }) arg_elem.text = ' '.join( argDescriptions.get(arg, 'UNDOCUMENTED').split()) self.last_elem = this_elem self.known_topics.append(topicObj)
def xldf_hyperlinkify(localpath,cmd,tree): where = tree.findall(cmd.findtext('goal')) if where: el = ET.SubElement(where[0],'link') ET.SubElement(el,'text').text = where[0].text ET.SubElement(el,'external').text = cmd.findtext('uri') #el.attrib['href'] = cmd.findtext('uri') #el.text = where[0].text where[0].text = '' print '[XLDF] hyperlinkify(',cmd.findtext('goal'),',',cmd.findtext('uri'),')' else: print '[----] xldf:hyperlinkify: goal',cmd.findtext('goal'),'not found' return
def make_alignment( seqobjectdict ): # [seqobjects], N --> <alignment_block, id='N'> <taxon and sequence for each seqobject /> </alignment_block> alignblock = ET.Element('alignment') alignblock.set('id', 'alignment') alignblock.set('dataType', 'nucleotide') for header, seqobject in seqobjectdict.items(): seqblock = ET.SubElement(alignblock, 'sequence') taxon = ET.SubElement(seqblock, 'taxon') taxon.set('idref', header) taxon.tail = str(seqobject.seq) return alignblock
def parseolist(self,line): level=0 for c in line: if c=='#': level+=1 else: break while (level>len(self.list)-1): self.list.append(ET.SubElement(self.list[-1], "ol")) while (level<len(self.list)-1): self.list.pop() self.cont=ET.SubElement(self.list[-1],"li") self.cont.text=line[level:]
def save_xml( kwargs, filename="" ): """ fonction: pour ecrire le fichier RssFeeds.xml, a partir d'une dico """ try: if not filename: filename = XML_PATH if kwargs and isinstance( kwargs, dict ): # build a tree structure root = ET.Element( "rssfeeds" ) root.text = "\n " #optional Comment c1 = ET.Comment( 'RSS feeds. To have multiple feeds, just add a feed to the set. You can also have multiple sets.' ) c2 = ET.Comment( 'To use different sets in your skin, each must be called from skin with a unique id.' ) c1.tail = "\n "; root.append( c1 ) c2.tail = "\n "; root.append( c2 ) #optional Comment writed in set tag id 100 only c3 = ET.Comment( "Rss Feed : passion-xbmc.org; created and used by script Installer Passion-XBMC" ) c3.tail = "\n " # build elements and sub elements for key, value in sorted( kwargs.items(), key=lambda k: int( k[ 0 ] ) ): set_elem = ET.SubElement( root, "set" ) set_elem.attrib.update( { "id": key, "rtl": value.get( "rtl", "false" ) } ) set_elem.text = "\n " set_elem.tail = "\n " if key == "100": set_elem.append( c3 ) for feed in value[ "feed" ]: feed_elem = ET.SubElement( set_elem, "feed" ) feed_elem.attrib.update( { "updateinterval": feed.get( "updateinterval", "30" ) } ) feed_elem.text = feed.get( "feed", "http://passion-xbmc.org/scraper/?forumrss=1" ) feed_elem.tail = "\n " try: feed_elem.tail = "\n " except: set_elem.text = "" if not value[ "feed" ]: set_elem.text = "" try: set_elem.tail = "\n" except: root.text = "\n" # wrap it in an ElementTree instance, and save as XML tree = ET.ElementTree( root ) # frost: I modified ElementTree.write for write standalone try: tree.write( filename, ENCODING, True ) except: tree.write( filename, ENCODING ) #If not error, refresh_rss and return filename path. refresh_rss() return filename except: print_exc()
def read(text): root = ET.Element('uclassify', xmlns='http://api.uclassify.com/1/RequestSchema', version='1.01') texts = ET.SubElement(root, 'texts') textBase64 = ET.SubElement(texts, 'textBase64', id='text1') textBase64.text = base64.b64encode(text.encode('UTF-8')) readCalls = ET.SubElement(root, 'readCalls', readApiKey=readKey) classify = ET.SubElement(readCalls, 'classify', id='classify1', classifierName='subjects', textId='text1') return root
def addSubElement(self, elementFather, subElementName): """ Adds a subelement to the tree """ try: if elementFather == self.root: return ET.SubElement(self.root, subElementName) else: return ET.SubElement(elementFather, subElementName) pass except Exception, e: print str(e) print "There was an error adding a subElement" return None
def parsedlist(self,line): level=0 for c in line: if c==';': level+=1 else: break while (level>len(self.list)-1): self.list.append(ET.SubElement(self.list[-1], "dl")) while (level<len(self.list)-1): self.list.pop() d=line[level:].split(':',1) ET.SubElement(self.list[-1],"dt").text=d[0] self.cont=ET.SubElement(self.list[-1],"dd") self.cont.text=d[1]
def create_message(self, project_id, category_id, title, body, private=False, notify=None, attachments=None): """ Creates a new message, optionally sending notifications to a selected list of people. Note that you can also upload files using this function, but you need to upload the files first and then attach them. See the description at the top of this document for more information. """ path = '/projects/%u/posts.xml' % project_id req = ET.Element('request') req.append( self._create_message_post_elem(category_id, title, body, private)) if notify: for person_id in notify: ET.SubElement(req, 'notify').text = str(int(person_id)) # TODO: Implement attachments. if attachments is not None: raise NotSupportedErr('Attachments are currently not implemented.') ##for attachment in attachments: ## attms = ET.SubElement(req, 'attachments') ## if attachment['name']: ## ET.SubElement(attms, 'name').text = str(attachment['name']) ## file_ = ET.SubElement(attms, 'file') ## ET.SubElement(file_, 'file').text = str(attachment['temp_id']) ## ET.SubElement(file_, 'content-type').text \ ## = str(attachment['content_type']) ## ET.SubElement(file_, 'original-filename').text \ ## = str(attachment['original_filename']) return self._request(path, req, post=True, return_response=True)
def __init__(self,f,prefix="",pretex="",basedir=""): self.prefix=prefix self.pretex=pretex self.basedir=basedir textopng.base=basedir self.root=ET.Element("html") self.head=ET.SubElement(self.root,"head") self.meta=ET.SubElement(self.root,"meta") self.body=ET.SubElement(self.root, "body") self.div=ET.SubElement(self.body, "div") self.cont=self.div self.list=[self.div] self.scripteof='' self.scriptsource='' self.scriptprog='' self.parse(f)
def exportTopicTreeSpecXml(moduleName=None, rootTopic=None, bak='bak', moduleDoc=None): """ If rootTopic is None, then pub.getDefaultTopicTreeRoot() is assumed. """ if rootTopic is None: from .. import pub rootTopic = pub.getDefaultTopicTreeRoot() elif py2and3.isstring(rootTopic): from .. import pub rootTopic = pub.getTopic(rootTopic) tree = ET.Element('topicdefntree') if moduleDoc: mod_desc = ET.SubElement(tree, 'description') mod_desc.text = ' '.join(moduleDoc.split()) traverser = pub.TopicTreeTraverser(XmlVisitor(tree)) traverser.traverse(rootTopic) indent(tree) if moduleName: filename = '%s.xml' % moduleName if bak: pub._backupIfExists(filename, bak) fulltree = ET.ElementTree(tree) fulltree.write(filename, "utf-8", True) return ET.tostring(tree)
def get_yahoo_player_audio_url(row, arrow=True, albumcover=False): #gets url to track with album image if album image exists #if arrow is true, arrow icon is shown on page #if album cover is true, album cover is shown on page try: if not arrow: link = ET.Element('a', style='display:none', title="%s - %s (%s)" % (row.artist, row.title, row.album), href='/mp3/T%s.mp3' % str(row.id)) else: link = ET.Element('a', title="%s - %s (%s)" % (row.artist, row.title, row.album), href='/mp3/T%s.mp3' % str(row.id)) #don't show text for this link.text = '' #now add the album cover if len(row.albums) > 0: #atand row.albums.count()>0 : albumcover_url = get_albumcover_urltxt(row.albums[0]) if len(albumcover_url) <> '': link_img = ET.SubElement(link, 'img', align='right', style='display:none', src=albumcover_url) except: link = '' return link
def appendToXML(playlists): tree = ET.parse("query.xml") #root = ET.Element("xml") root = tree.getroot() for key in playlists.keys(): list = ET.SubElement(root, "list") theme = ET.SubElement(list, "theme") theme.text = key for s in playlists[key]: song = ET.SubElement(list, "song") song.text = s tree = ET.ElementTree(root) tree.write("query.xml", "utf-8")
def insert_screensaver_settings(root, settings): """ """ tab = ' ' ret = '\n' root.text = ret + tab for setting in settings.keys(): subelement = ET.SubElement(root, setting) subelement.text = ret + tab + tab for param in settings[setting].keys(): subsub = ET.SubElement(subelement, param) subsub.text = settings[setting][param] subsub.tail = ret + tab + tab subelement.tail = ret return root
def __get__(self, document, owner): if document is None: return self if hasattr(document, '_element'): return document._element nodes = {} root = None for node in document._nodes: if node.parent_id is not None: parent = nodes[node.parent_id] elem = ElementTree.SubElement(parent, node.tag) nodes[node.element_id] = elem else: parent = None elem = root = ElementTree.Element(node.tag) nodes[node.element_id] = root for attr in node.attributes: elem.attrib[attr.name] = attr.value elem.text = node.text elem.tail = node.tail document._element = ElementTree.ElementTree(root) return document._element
def init(self, side): self.sides.append(ET.Element("side", id=side.owner)) sidexml = self.sides[-1] for type, amount in enumerate(side.ships.combine()): for index in range(0, amount): entityid = side.name(type, index) sidexml.append(ET.Element("entity", id=entityid)) entityxml = sidexml[-1] namexml = ET.SubElement(entityxml, "name") namexml.text = entityid typexml = ET.SubElement(entityxml, "type") typexml.text = side.ships.names[type]
def onAddKeyClicked(self, checked=False): ET.SubElement(self.mOption.mElement, 'key', value="NEW_KEY") self.mKeyListModel.emit(QtCore.SIGNAL("modelReset()")) new_row = self.mKeyListModel.rowCount()-1 new_index = self.mKeyListModel.index(new_row) self.mKeysList.setCurrentIndex(new_index) self.mKeysList.edit(new_index)
def getXml(self): #print 'Getting the XML of selectable',self.sel,'...' self.ex = ET.Element(slpsns.bgf_('expression')) self.xml = ET.SubElement(self.ex, 'seplistplus') self.xml.append(self.item.getXml()) self.xml.append(self.sep.getXml()) return self.ex
def read(text): print "Safely made it into the read() method!" root = ET.Element('uclassify', xmlns='http://api.uclassify.com/1/RequestSchema', version='1.01') texts = ET.SubElement(root, 'texts') textBase64 = ET.SubElement(texts, 'textBase64', id='text1') textBase64.text = escape(text) readCalls = ET.SubElement(root, 'readCalls', readApiKey=readKey) classify = ET.SubElement(readCalls, 'classify', id='classify1', classifierName='subjects', textId='text1') print ET.tostring(root, encoding='UTF-8') print "End of read() method." return root