def loads(self,s): """Load object from a string *s*. Loaded object is returned. This is a convenience method that reads the dom document, calls *retrieve* and frees the reference tables.""" self.cleanReftables() e=dom.parseString(s).documentElement val=self.retrieve(e) self.cleanReftables() return val;
def parseXMLString(txt): """ Return DOM Document object for xml string *txt* . This is a wrapper to parsing function for some DOM parser. ODPdom is used by default. Change parseXML and parseXMLString if you want to use a different DOM parser. """ if use_odpdom: return ODPdom.parseString(txt) else: msg().message("WARNING: ODPdom is not working, using minidom.") return xml.dom.minidom.parseString(txt)
def parseXML(path): """ Return DOM Document object for xml file given by path. This is a wrapper to parsing function for some DOM parser. ODPdom is used by default. Change parseXML and parseXMLString if you want to use a different DOM parser. """ import os.path if not os.path.exists(path): raise IOError, "No such file or directory: '%s'" % path if use_odpdom: return ODPdom.parseFile(path) else: msg().message("WARNING: ODPdom is not working, using minidom.") return xml.dom.minidom.parse(path)
def getChildrenByTagName(elem, tag, name=None): """ Searches the children of *elem* for element nodes with the tagname *tag* and optionaly with the attribute "name" having the value *name*. """ try: r = ODPdom.ChildrenByTagNameList(elem, tag) if name: # print "return filtered ODPdom.ChildrenByTagNameList" return filter(lambda x, name=name: x.getAttribute("name") == name, r) else: return r except: # print "ODPdom.ChildrenByTagNameList failed" if name: f=lambda x,tag=tag,name=name:(x.nodeName==tag) and\ (x.nodeType==x.ELEMENT_NODE) and\ (x.getAttribute("name")==name) else: f = lambda x, tag=tag: (x.nodeName == tag) and (x.nodeType == x. ELEMENT_NODE) return filter(f, elem.childNodes)