def convert(self, qdc, PID, target_format): """Convert the QDC Metadata from Fedora to any format supported by bibutils. Uses MODS as an intermediate format. """ mods = self._make_mods(qdc, PID) if target_format == 'xml': indent.indent(mods) xml = ET.tostring(mods, encoding='utf-8') result = xml else: xml = ET.tostring(mods, encoding='utf-8') command = _getCommand('xml', target_format) p = Popen(command, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=False) (fi, fo, fe) = (p.stdin, p.stdout, p.stderr) # fi.write(_encode(xml)) fi.write(xml) fi.close() result = fo.read() fo.close() error = fe.read() fe.close() return result
def query(q_text='',q_fieldtext='',q_databasematch='',q_maxresults=''): delimiter = "\t" # idol server parameters query_action = "Query" query_params = "" query_valid = False if q_text != '': query_params = query_params + "&text=" + q_text query_valid = True if q_fieldtext != '': query_params = query_params + "&fieldtext=" + q_fieldtext query_valid = True if q_text != '': query_params = query_params + "&databasematch=" + q_databasematch if q_text != '': query_params = query_params + "&maxresults=" + str(q_maxresults) if query_valid == False: print "Missing query parameter: text or fieldtext are required." return autnresponse = aci.action(query_action+query_params) response = autnresponse.find("./response").text if response == "SUCCESS": numhits = int(autnresponse.find( "./responsedata/{http://schemas.autonomy.com/aci/}numhits").text) if numhits > 0: print "Hits: "+str(numhits) for hit in autnresponse.findall( "./responsedata/{http://schemas.autonomy.com/aci/}hit"): doc = hit.find("{http://schemas.autonomy.com/aci/}content/DOCUMENT") print ElementTree.tostring(doc) else: print "Query succeeded, but returned no hits: "+ElementTree.tostring(autnresponse) else: print "ACI exception: "+response+"|"+ElementTree.tostring(autnresponse) return autnresponse
def __init__(self, elem): self.elem = elem self.name = self.elem.get('name') self.type = self.elem.get('type') self.default = self.elem.get('default') print et.tostring(self.elem) print "!",self.name, self.type, self.default
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 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 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 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
def train(text, className, new=0): print "Safely made it to the train() 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) writeCalls = ET.SubElement(root, 'writeCalls', writeApiKey=writeKey, classifierName='subjects') if new == 1: addClass = ET.SubElement(writeCalls, 'addClass', id='add1', className=className) train = ET.SubElement(writeCalls, 'train', id='train1', className=className, textId='text1') print ET.tostring(root, encoding='UTF-8') return root
def loadStanzas(self, stanzaFiles, progressCB=None): # If files is really a single file, turn it into a list. if types.StringType == type(stanzaFiles): stanzaFiles = [ stanzaFiles, ] if not progressCB: progressCB = null_progress_cb num_files = len(stanzaFiles) for (i, f) in zip(xrange(num_files), stanzaFiles): file_name = os.path.abspath(f) if os.path.exists( file_name) and not self.mStanzas.has_key(file_name): progressCB(i / num_files, "Loading file: %s" % file_name) stanza_elm = ET.ElementTree(file=file_name).getroot() self.mStanzas[file_name] = stanza_elm # Store a digest to ensure we save changes. stanza_str = ET.tostring(stanza_elm) stanza_digest = md5.new(stanza_str).digest() self.mStanzaDigests[file_name] = stanza_digest self._expandCmdLine()
def test_xml_indent_indent_4(): parsed = ElementTree.fromstring(FIXTURE_XML) fixed = xml_indent(parsed, indent=4) result = ElementTree.tostring(fixed) # only newlines in embedded text shold remain print('Indent 4:\n' + result) assert result.count('\n') == 22
def __call__(self, as_string=False): taxonomy = self.taxonomy attrib = self.IMSVDEX_ATTRIBS attrib['language'] = taxonomy.default_language or '' root = ElementTree.Element('vdex', attrib=attrib) vocabName = ElementTree.Element('vocabName') root.append(vocabName) langstring = ElementTree.Element( 'langstring', attrib={'language': taxonomy.default_language or ''}) langstring.text = taxonomy.title vocabName.append(langstring) vocabIdentifier = ElementTree.Element('vocabIdentifier') vocabIdentifier.text = self.taxonomy.name.replace( 'collective.taxonomy.', '') root.append(vocabIdentifier) root = self.buildTree(root) if as_string: indent(root) treestring = ElementTree.tostring(root, self.IMSVDEX_ENCODING) header = """<?xml version="1.0" encoding="%s"?>""" % \ self.IMSVDEX_ENCODING.upper() + '\n' treestring = header + treestring return treestring else: return root
def parseAndAddFilmsTree(FixedURL): DLConn = urllib2.urlopen(urllib2.Request(FixedURL)) MTreeS = DLConn.read() DLConn.close() MTree = ElementTree.fromstring(MTreeS) NextOffsetSafe = MTree.find('next_offset') if NextOffsetSafe != None: NextOffset = NextOffsetSafe.text PageIndex = MTree.find('page_index').text PageTotal = MTree.find('page_total').text Films = MTree.findall('film') for Film in list(Films): FilmID = Film.find('id').text Title = Film.find('title').text Plot = Film.find('logline').text Year = Film.find('year').text Images = Film.find('images') Image = Images.find('image') strImage = ElementTree.tostring(Image) ImageSrc = re.compile('<image height="317" src="(.+?)" type="android_poster" width="214" />').findall(strImage)[0] Minutes = Film.find('duration_minutes').text Seconds = Film.find('duration_seconds').text Duration = GetFormattedTime(Minutes) + ':' + Seconds MPAA = Film.find('parental_rating').text addDir(Title, FilmID, SF_MODE_PLAY, ImageSrc, False, True, False, Plot, Year, Duration, MPAA) #print 'PageIndex: ' + PageIndex + ' PageTotal: ' + PageTotal + ' NextOffset: ' + NextOffset if PageIndex != PageTotal and NextOffset != None: if mode == SF_MODE_LIST: addDir(__settings__.getLocalizedString(30013), url, mode, next_thumb, True, False, NextOffset) else: addDir(__settings__.getLocalizedString(30013), '', mode, next_thumb, True, False, NextOffset)
def parseAndAddDynamicLeadTree(FixedURL, mainS=False): DLConn = urllib2.urlopen(urllib2.Request(FixedURL)) MTreeS = DLConn.read() DLConn.close() MTree = ElementTree.fromstring(MTreeS) Slides = MTree.findall('slides') DLSlides = Slides[0].findall('dynamicLeadSlide') for DLSlide in list(DLSlides): Film = DLSlide.findall('film')[0] FilmID = Film.find('id').text Title = Film.find('title').text if mainS == True: Title = u'\u2022 ' + Title Plot = Film.find('logline').text Year = Film.find('year').text Minutes = Film.find('duration_minutes').text Seconds = Film.find('duration_seconds').text Duration = GetFormattedTime(Minutes) + ':' + Seconds Images = Film.find('images') if Images is not None: Image = Images.find('image') strImage = ElementTree.tostring(Image) ImageSrc = re.compile('<image height="317" src="(.+?)" type="android_poster" width="214" />').findall(strImage)[0] else: ImageSrc = '' MPAA = Film.find('rating').text addDir(Title, FilmID, SF_MODE_PLAY, ImageSrc, False, True, False, Plot, Year, Duration, MPAA)
def query(q_text='',q_allowoverlaps=False,q_allowmultipleresults=False,q_grammars=None): delimiter = "\t" # idol server parameters query_action = "EduceFromText" query_params = "" query_valid = False if q_text != '': query_params = query_params + "&text=" + q_text query_valid = True if q_allowoverlaps == True: query_params = query_params + "&AllowOverlaps=true" if q_allowmultipleresults == True: query_params = query_params + "&AllowMultipleResults=true" if q_grammars != None: query_params = query_params + "&Grammars=" + q_grammars if query_valid == False: print "Missing query parameter: text is required." return autnresponse = edk.action(query_action+query_params) response = autnresponse.find("./response").text if response == "SUCCESS": for hit in autnresponse.findall( "./responsedata/{http://schemas.autonomy.com/aci/}hit"): # print ElementTree.tostring(hit) nt = hit.find("./normalized_text").text print nt else: print "ACI exception: "+response+"|"+ElementTree.tostring(autnresponse) return autnresponse
def xmlObjToString(element=None): s = "None" if element != None: s = "" textBlock = False level = 0 fields = re.split('(<.*?>)', ElementTree.tostring(element)) for f in fields: if f[:4] == "<!--": s += "\n" + f + "\n" elif string.strip(f) == '': s += "\n" elif f[0] == "<" and f[1] != "/" and f[len(f) - 2:] == "/>": s += " " * (2 * level) + f elif f[0] == "<" and f[1] != "/": s += " " * (2 * level) + f level += 1 elif (f[:2] == "</" or f[len(f) - 2:] == "/>") and not textBlock: level -= 1 textBlock = False s += " " * (2 * level) + f elif (f[:2] == "</") and textBlock == True: s += f level -= 1 textBlock = False else: textBlock = True s += f return s
def test_xml_indent_indent_none(): parsed = ElementTree.fromstring(FIXTURE_XML) compacted = xml_indent(parsed, indent=0) result = ElementTree.tostring(compacted) # only newlines in embedded text shold remain print('Indent 0:\n' + result) assert result.count('\n') == 3
def __call__(self, as_string=False): taxonomy = self.taxonomy attrib = self.IMSVDEX_ATTRIBS attrib['language'] = taxonomy.default_language or '' root = ElementTree.Element('vdex', attrib=attrib) vocabName = ElementTree.Element('vocabName') root.append(vocabName) langstring = ElementTree.Element( 'langstring', attrib={'language': taxonomy.default_language or ''} ) langstring.text = taxonomy.title vocabName.append(langstring) vocabIdentifier = ElementTree.Element('vocabIdentifier') vocabIdentifier.text = self.taxonomy.name.replace( 'collective.taxonomy.', '' ) root.append(vocabIdentifier) root = self.buildTree(root) if as_string: indent(root) treestring = ElementTree.tostring(root, self.IMSVDEX_ENCODING) header = """<?xml version="1.0" encoding="%s"?>""" % \ self.IMSVDEX_ENCODING.upper() + '\n' treestring = header + treestring return treestring else: return root
def do_PROPFIND(self): self.debug() length = self.headers.get("Content-Length") if length and length != "0": data = self.rfile.read(int(length)) print "Received:", data multistatus = ET.Element(DAV.multistatus) try: resource = FS.get(self.path) except KeyError: self.send_response(404) self.end_headers() return # FIXME: should handle depth multistatus.append(properties(resource)) if isinstance(resource, fs.Directory): for child in resource.children.values(): child_desc = properties(child) multistatus.append(child_desc) response = '<?xml version="1.0" encoding="utf-8"?>\n' response += ET.tostring(multistatus) self.send_response(207) self.send_header("Content-Length", str(len(response))) self.send_header("Content-Type", 'text/xml; charset="utf-8"') self.end_headers() self.wfile.write(response)
def xml(self): if not self.tree: LOG('Failed to create XML for show: {0} (ID: {1})'.format(self.name,self.showid)) return '' return etree.tostring(self.tree).strip() """
def getHisto(name): f=open(name) sxml=f.read() s=sxml.replace('\n','') tree =ET.XML(s) h=TBufferXML.ConvertFromXML(ET.tostring(tree)) return h
def getHisto(host,port,hname): """ Histogram Monitoring.Send a 'HistoRequest' request to the application (host:port/theclass,instance) for the histo named hname handler is currently implemented in MarlinAnalyzer It returns the XML version of the object required and book it in pyROOT The histo can then be displayed with h.Draw() with all usual ROOT options It has to be avoided for 3D or large 2D histograms since the actual size in XML format might be critical """ lq={} lq['name']=hname lqs=urllib.urlencode(lq) myurl = host+ ":%d" % (port) conn = httplib.HTTPConnection(myurl) saction = '/getHisto?%s' % (lqs) conn.request("GET",saction) r1 = conn.getresponse() print r1.status, r1.reason data1 = r1.read() data=json.loads(data1); #print data s=data["getHistoResponse"]["getHistoResult"][0]#.replace('\n','') #s=s.replace('\n','gogo') #print s tree = ET.XML(s) #print tree h=TBufferXML.ConvertFromXML(ET.tostring(tree)) return h
def create_new_ids(document): idcount = 1 for node in document.getiterator(): node_hash = str(ET.tostring(node, "utf-8").__hash__()) node.attrib[IDTAG] = str(idcount) node.attrib[HASHTAG] = node_hash idcount += 1
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 xml(self): if not self.tree: LOG('Failed to create XML for show: {0} (ID: {1})'.format( self.name, self.showid)) return '' return etree.tostring(self.tree).strip() """
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 _request(self, path, data=None, put=False, post=False, delete=False, get=False, return_response=False): if isinstance(data, ET._ElementInterface): data = ET.tostring(data) url = self.baseURL + path headers = {'Content-Type': 'application/xml', 'Authorization': 'Bearer %s' % self.apikey} if post: answer = requests.post(url, data, headers=headers) elif put: if not data: headers['content-length'] = '0' answer = requests.put(url, data, headers=headers) elif delete: answer = requests.delete(url, headers=headers) else: answer = requests.get(url, headers=headers) if ( (post and answer.status_code != 201) or (not post and answer.status_code != 200) ): self.last_error = answer.text raise BasecampError() if return_response: return answer return answer.text
def create_new_ids (document): idcount = 1 for node in document.getiterator (): node_hash = str (ET.tostring(node, "utf-8").__hash__()) node.attrib [IDTAG] = str (idcount) node.attrib [HASHTAG] = node_hash idcount += 1
def printUserCount(prj): url = "http://www.ohloh.net/projects.xml?query=%s&%s" % (prj, params) print url f = urllib.urlopen(url) # Parse the response into a structured XML object tree = ET.parse(f) # Did Ohloh return an error? elem = tree.getroot() error = elem.find("error") if error != None: print 'Ohloh returned:', ET.tostring(error), sys.exit() # Output all the immediate child properties of the first project firstPrj = elem.find("result/project") print '{' if firstPrj != None: for node in firstPrj: if node.tag in [ 'name', 'url', 'homepage_url', 'user_count', 'average_rating', 'rating_count', 'review_count' ]: print "\t%s:\t%s," % (node.tag, node.text) print '},'
def __call__(self, as_string=False): taxonomy = self.taxonomy attrib = self.IMSVDEX_ATTRIBS attrib["language"] = taxonomy.default_language or "" root = ElementTree.Element("vdex", attrib=attrib) vocabName = ElementTree.Element("vocabName") root.append(vocabName) langstring = ElementTree.Element("langstring", attrib={"language": taxonomy.default_language or ""}) langstring.text = taxonomy.title vocabName.append(langstring) vocabIdentifier = ElementTree.Element("vocabIdentifier") vocabIdentifier.text = self.taxonomy.name.replace("collective.taxonomy.", "") root.append(vocabIdentifier) root = self.buildTree(root) if as_string: indent(root) treestring = ElementTree.tostring(root, self.IMSVDEX_ENCODING) header = """<?xml version="1.0" encoding="%s"?>""" % self.IMSVDEX_ENCODING.upper() + "\n" treestring = header + treestring return treestring else: return root
def __call__(self): """ """ from zope.app.component import hooks from elementtree import ElementTree as ET kamerad_attr = ["title", "geburtsdatum", "mitglied_seit", "telefon", "anschrift", "dienstgrad", "hauptamtlich", "ausb_tmft", "ausb_maschinist", "ausb_atemschutz", "ausb_sprechfunk", "ausb_kettensaege", "ausb_jugend", "geraetewart", "atemschutz_geraetewart", "wehrleiter", "verbandsfuehrer", "zugfuehrer", "gruppenfuehrer", "maschinist", "atemschutz", "truppfuehrer", "sprechfunker", "truppmann"] site = hooks.getSite() brains = site.portal_catalog(portal_type="mb.ffwdz.mitgliederverwaltung.zug") root = ET.Element(u"Mitgliederverwaltung") for brain in brains: zug = brain.getObject() zug_as_xml = ET.Element( zug.id.encode('utf-8'), attrib={ 'ehrenjahre' : zug.ehrenjahre.encode('utf-8'), 'name' : zug.title.encode('utf-8') }, ) users = zug.getChildNodes() for user in users: user_as_xml = ET.Element( user.id.encode('utf-8') ) for attr in kamerad_attr: user_as_xml.attrib[attr] = unicode(getattr(user, attr)) zug_as_xml.append(user_as_xml) root.append(zug_as_xml) self.request.response.setHeader('Content-Type', 'application/xml') return ET.tostring(root)
def _request(self, path, data=None, put=False, post=False, delete=False, get=False, return_response=False): if isinstance(data, ET._ElementInterface): data = ET.tostring(data) url = self.baseURL + path headers = { 'Content-Type': 'application/xml', 'Authorization': 'Bearer %s' % self.apikey } if post: answer = requests.post(url, data, headers=headers) elif put: if not data: headers['content-length'] = '0' answer = requests.put(url, data, headers=headers) elif delete: answer = requests.delete(url, headers=headers) else: answer = requests.get(url, headers=headers) if ((post and answer.status_code != 201) or (not post and answer.status_code != 200)): self.last_error = self._read_answer(answer) raise BasecampError() if return_response: return answer return self._read_answer(answer)
def make_string(xml): if isinstance(xml, (str, unicode)): xml = make_xml(xml) s = et.tostring(xml) if s == '<xml />': return '' assert s.startswith('<xml>') and s.endswith('</xml>'), repr(s) return s[5:-6]
def makeEvents(writer, todos): done = [todo for todo in todos if todo.doneOn] root = ET.Element('data') for todo in done: ev = ET.SubElement(root, 'event', title=todo.task, start=makeTimelineTime(todo.doneOn)) ev.text = '%s p-%s @%s' % (todo.task, todo.project, todo.context) writer(ET.tostring(root))
def assertXmlEquals(self, expected, actual): expected_tree = ElementTree.XML(expected) actual_tree = ElementTree.XML(actual) if ElementTree.tostring(expected_tree) != ElementTree.tostring(actual_tree): print print "Expected:" print prettyXML(expected_tree) print print print "Actual:" print prettyXML(actual_tree) print raise AssertionError(u"XML mis-match")
def tostring(self): # This statement appears to do nothing? Wanted to set this as the default namespace... #et.register_namespace("", ns) return """<?xml version="1.0" encoding="UTF-8"?> <?org-vrjuggler-jccl-settings configuration.version="3.0"?> """ + et.tostring(self.tree.getroot())
def writeToFile( self, filename ): roughXml = Et.tostring( self.sdf, 'utf-8') reparsed = minidom.parseString(roughXml) prettyXml = reparsed.toprettyxml(indent="\t") outfile = open( filename, "w") outfile.write( prettyXml ) outfile.close()
def writeTree(prefsFile, root): cfg_text = ET.tostring(root) cfg_text = Preferences.sLeadSpacesRe.sub('>', cfg_text) cfg_text = Preferences.sTrailSpacesRe.sub('<', cfg_text) dom = xml.dom.minidom.parseString(cfg_text) dom.normalize() output_file = file(prefsFile, 'w') output_file.write(dom.toprettyxml(indent=' ', newl='\n')) output_file.close()
def writeTree(prefsFile, root): cfg_text = ET.tostring(root) cfg_text = Preferences.sLeadSpacesRe.sub('>', cfg_text) cfg_text = Preferences.sTrailSpacesRe.sub('<', cfg_text) dom = xml.dom.minidom.parseString(cfg_text) dom.normalize() output_file = file(prefsFile, 'w') output_file.write(dom.toprettyxml(indent = ' ', newl = '\n')) output_file.close()
def to_string(self, version=1, encoding=None, pretty_print=None): """Converts this object to XML.""" tree_string = ElementTree.tostring(self._to_tree(version, encoding)) if pretty_print and xmlString is not None: return xmlString(tree_string).toprettyxml() return tree_string
def check(a, b): import re a = ElementTree.tostring(ElementTree.XML(a)) a = re.sub("HTML Tidy[^\"]+", "TIDY", a) a = re.sub("\r\n", "\n", a) if a != b: print a print "Expected:" print b
def __str__(self): string = ET.tostring(self.tree, "utf-8") reparsed = xml.dom.minidom.parseString(string) xml_string = reparsed.toxml("utf-8") p = subprocess.Popen(("tidy", "-xml", "-indent", "-quiet"), stdin=subprocess.PIPE, stdout=subprocess.PIPE) p.stdin.write(xml_string) p.stdin.close() return p.stdout.read()
def makeXML(self): def makeChildEl(parent_el,child_tag,content): parent_el.tail ="\n" if content is None: return parent_el.text = "\n" child_el = ET.Element(child_tag) child_el.text = content child_el.tail = "\n" parent_el.append(child_el) int_ids = getUtility(IQreatureIntIds, context=self.quiz) root = ET.Element(u'quiz') makeChildEl(root,u'title',self.quiz.title) makeChildEl(root, u'content', self.quiz.body) if IScaleQuiz.providedBy(self.quiz): makeChildEl(root,u'schema',u'scale') elif ISlotQuiz.providedBy(self.quiz): makeChildEl(root,u'schema',u'slots') pages = IAnnotations(removeSecurityProxy(self.quiz)).get(PAGES_KEY) if pages is not None: makeChildEl(root,u'questions_per_page',str(pages)) results = [r for r in self.quiz.values() if IQuizResult.providedBy(r)] for r in results: r_el = ET.Element(u'result') makeChildEl(r_el,u'title',r.title) makeChildEl(r_el,u'content',r.body) result_interval = IAnnotations(removeSecurityProxy(r)).get(INTERVAL_KEY) if result_interval is not None: makeChildEl(r_el,u'border',unicode(result_interval)) root.append(r_el) questions = [q for q in self.quiz.values() if IQuizQuestion.providedBy(q)] for q in questions: q_el = ET.Element(u'question') makeChildEl(q_el,u'title',q.title) makeChildEl(q_el,u'content',q.body) answers = [a for a in q.values() if IQuizAnswer.providedBy(a)] for a in answers: a_el = ET.Element(u'answer') makeChildEl(a_el,u'title',a.title) makeChildEl(a_el,u'content',a.body) makeChildEl(a_el,u'value',unicode(a['value'].value)) if (removeSecurityProxy(a)).has_key('lead'): makeChildEl(a_el, u'lead', int_ids.getObject(int(a['lead'].question_id)).title) depends = [d for d in a.values() if IAnswerDepends.providedBy(d)] for d in depends: d_el = ET.Element(u'depend') makeChildEl(d_el,u'result_title',int_ids.getObject(int(d.result_id)).title) makeChildEl(d_el,u'value',unicode(d.depend_value)) a_el.append(d_el) q_el.append(a_el) root.append(q_el) data = ET.tostring(root,'utf-8') return data
def GetMessage(self, desiredcanid, desiredopcode, desiredfctid, desireddata): """ Returns Errors in string mode, Input desiredcanid, Desiredopcode, desiredfctid and desireddata to get the message and ready to send to the PCAN driver. Assumption : data will not be segmented when datatype = uint8 or """ desiredfctid = str(desiredfctid) retval = desiredfctid in self.fctidlist if (retval == False): return 'FunctionIdError' else: fctid = desiredfctid self.desiredfctidelement = self.fctidelemlist[self.fctidlist.index( desiredfctid)] opcodecombined = self.desiredfctidelement.getchildren()[0].find( 'TX').get('opCode') retval = desiredopcode in opcodecombined.split('-') if (retval == False): return 'OpcodeError' else: opcode = opcode_dict[desiredopcode] lsgid = self.root.find('FLsg').get('id') issegmentedelement = self.desiredfctidelement.getchildren( )[0].find('TX').getchildren()[0] self.issegment = ET.tostring(issegmentedelement).split( ' ')[0][1:] self.datatype = self.desiredfctidelement.getchildren()[0].find( 'TX').get('dataType') if self.datatype == 'byteSequence': self.length = int(self.desiredfctidelement.getchildren() [0].find('TX').get('length')) if len(desireddata) >= self.length: return 'DataLengthError' else: maxlength = self.length elif self.datatype == 'fixedByteSequence': self.length = int(self.desiredfctidelement.getchildren() [0].find('TX').get('length')) if len(desireddata) != self.length: return 'DataLengthError' else: maxlength = self.length elif self.datatype == 'uint8': self.length = 1 if len(desireddata) >= 1: return 'DataLengthError' maxlength = 1 data = desireddata canid = desiredcanid bapmessage = BapMessage.BapMessage(canid, lsgid, fctid, opcode, issegmenteddict[self.issegment], maxlength, data) a = bapmessage.getCanMessages() return a
def combine_xml(files): first = None for filename in files: data = ElementTree.parse(os.path.join(sys.argv[1], filename)).getroot() if first is None: first = data else: first.extend(data) if first is not None: return ElementTree.tostring(first)
def update_todo_item(self, item_id, content): path = '/todo_items/%d.xml' % item_id logger.debug("Updateing todo item %d - %s" % (item_id, path) ) req = ET.Element('todo-item') ET.SubElement( req, "content").text = str( content ) (headers, conn) = self._create_http_connection() conn.request( "PUT", path, ET.tostring(req), headers ) res = conn.getresponse() logger.debug("Response code %d" % res.status) return res.status == 200
def combine_xml(files): first = None for filename in files: data = ElementTree.parse(os.path.join(sys.argv[1],filename)).getroot() if first is None: first = data else: first.extend(data) if first is not None: return ElementTree.tostring(first)
def save(self, filename=None): if filename is None: filename = self.mFilename # The maestro gui should have asked the user for a # filename if we don't already have one. assert filename is not None ensemble_str = ET.tostring(self.mElement) lines = [l.strip() for l in ensemble_str.splitlines()] ensemble_str = ''.join(lines) dom = parseString(ensemble_str) output_file = file(filename, 'w') output_file.write(dom.toprettyxml(indent=' ', newl='\n')) output_file.close() # Store a digest to ensure we save changes. ensemble_str = ET.tostring(self.mElement) self.mDigest = md5.new(ensemble_str).digest()
def xml_to_string(elem, pretty=False): """Returns a string from an xml tree""" if pretty: elem = pretty_print_xml(elem) try: return ElementTree.tostring(elem) except TypeError, e: # we assume this is a comment if hasattr(elem, 'text'): return "<!-- %s -->\n" % (elem.text) else: raise e
def query(q_text='', q_fieldtext='', q_databasematch='', q_maxresults=''): delimiter = "\t" # idol server parameters query_action = "Query" query_params = "" query_valid = False if q_text != '': query_params = query_params + "&text=" + q_text query_valid = True if q_fieldtext != '': query_params = query_params + "&fieldtext=" + q_fieldtext query_valid = True if q_text != '': query_params = query_params + "&databasematch=" + q_databasematch if q_text != '': query_params = query_params + "&maxresults=" + str(q_maxresults) if query_valid == False: print "Missing query parameter: text or fieldtext are required." return autnresponse = aci.action(query_action + query_params) response = autnresponse.find("./response").text if response == "SUCCESS": numhits = int( autnresponse.find( "./responsedata/{http://schemas.autonomy.com/aci/}numhits"). text) if numhits > 0: print "Hits: " + str(numhits) for hit in autnresponse.findall( "./responsedata/{http://schemas.autonomy.com/aci/}hit"): doc = hit.find( "{http://schemas.autonomy.com/aci/}content/DOCUMENT") print ElementTree.tostring(doc) else: print "Query succeeded, but returned no hits: " + ElementTree.tostring( autnresponse) else: print "ACI exception: " + response + "|" + ElementTree.tostring( autnresponse) return autnresponse
def __init__(self, xmlTree, fileName=None, parent=None): QtCore.QObject.__init__(self, parent) self.mDisallowedNodes = [] self.mConnectInProgress = {} # Store filename to save to later. self.mFilename = fileName # Store the element tree. self.mElementTree = xmlTree # Store cluster XML element self.mElement = self.mElementTree.getroot() assert self.mElement.tag == "ensemble" # Store a digest to ensure we save changes. ensemble_str = ET.tostring(self.mElement) self.mDigest = md5.new(ensemble_str).digest() self.mLogger = logging.getLogger("maestro.gui.ensemble") # Parse all node settings self.mNodes = [] for node_elt in self.mElement.findall("./cluster_node"): node = ClusterNode(node_elt) self.mNodes.append(node) self.connect(node, QtCore.SIGNAL("nodeChanged"), self.onNodeChanged) self.mIpToNodeMap = {} # XXX: Should we manage this signal on a per node basis? We would have # to make each node generate a signal when its OS changed and # listen for it here anyway. # Register to receive signals from all nodes about their current os. env = maestro.gui.Environment() env.mEventManager.connect("*", "ensemble.report_os", self.onReportOs) env.mEventManager.connect(LOCAL, "connectionStarted", self.onConnectionStarted) env.mEventManager.connect(LOCAL, "connectionMade", self.onConnectionMade) env.mEventManager.connect(LOCAL, "connectionFailed", self.onConnectionFailure) env.mEventManager.connect(LOCAL, "connectionLost", self.onLostConnection) env.mEventManager.connect(LOCAL, "authenticationSucceeded", self.onAuthSuccess) env.mEventManager.connect(LOCAL, "authenticationFailed", self.onAuthFailure)
def checkForChanges(self): ensemble_str = ET.tostring(self.mElement) ensemble_digest = md5.new(ensemble_str).digest() if self.mDigest != ensemble_digest: # Ask the user if they are sure. reply = QtGui.QMessageBox.question( None, "Unsaved Ensemble", "You have unsaved ensemble changes. Do you want to save them?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.Default, QtGui.QMessageBox.No | QtGui.QMessageBox.Escape) # If they say yes, go ahead and do it. return QtGui.QMessageBox.Yes == reply return False
def consultaDetalleProduccion(request, nrec): #def consultaDetalleProduccion(ncab): dajax = Dajax() nrec = DetProcesos.objects.filter(cabprocesos=CabProcesos.objects.get( pk=ncab))[0].id raiz = DetProcesos.get_root(DetProcesos.objects.get(pk=nrec)).id size = DetProcesos.get_descendant_count( DetProcesos.objects.get(id=raiz)) + 1 print raiz padre = DetProcesos.objects.get(id=raiz) cpadre = str(raiz) #Cabecera del Mensaje root = ET.Element("mxGraphModel") head = ET.SubElement(root, "root") ele = Element("mxCell") ele.set("id", "0") head.append(ele) ele1 = Element("mxCell") ele1.set("id", cpadre) ele1.set("parent", "0") head.append(ele1) objetoProcesos(head, str(raiz + 1), str(raiz + 1), str(raiz), str(raiz), padre.descripcion) print padre.descripcion nid = raiz for ele in range(0, size - 1): obj = DetProcesos.get_children(DetProcesos.objects.get(id=nid)) if len(obj) != 0: objetoProcesos(head, str(nid + 2), str(nid + 2), cpadre, cpadre, obj.values()[0]['descripcion']) print obj.values()[0]['descripcion'] nid = obj.values()[0]['id'] nid = raiz cpadre = str(raiz + 1) for ele in range(0, size - 1): obj = DetProcesos.get_children(DetProcesos.objects.get(id=nid)) if len(obj) != 0: nid = obj.values()[0]['id'] dest = nid + 1 enlaceProceso( head, str(nid + 2), str(nid + 2), str(raiz), str(raiz), cpadre, str(dest), TiposProcesos.objects.get(id=obj.values()[0]['tproceso_id'])) cpadre = str(dest) valores = simplejson.dumps(ET.tostring(root), cls=JSONEncoder) #tree = ET.ElementTree(root) #tree.write("salida.xml") return valores
def checkForStanzaChanges(self): for file_name, stanza in self.mStanzas.iteritems(): stanza_str = ET.tostring(stanza) stanza_digest = md5.new(stanza_str).digest() if not self.mStanzaDigests.has_key(file_name) or \ self.mStanzaDigests[file_name] != stanza_digest: # Ask the user if they are sure. reply = QtGui.QMessageBox.question( None, "Unsaved Stanza", "You have unsaved changes to %s. Do you want to save it?" % file_name, QtGui.QMessageBox.Yes | QtGui.QMessageBox.Default, QtGui.QMessageBox.No | QtGui.QMessageBox.Escape) # If they say yes, go ahead and do it. if reply == QtGui.QMessageBox.Yes: self.saveStanza(stanza, file_name)
def get_episodes(feed): #Open URL and get the stuff url = feed.url doc = urllib2.urlopen(url) rssXML = doc.read() doc.close() tree = ET.XML(rssXML) episodes = tree.findall('channel/item') episodesTitles = tree.findall('channel/item/title') for j in xrange(len(episodes)): n = episodesTitles[j] n = n.text epN = ((len(episodes)) - j) epXML = episodes[j] epXML = ET.tostring(epXML) newEp = models.Episode(name=n, episodeNum=epN, xml=epXML) newEp.save()