def get_texts_nested(self,prep=False,compare_to=None): if self.data is None and len(self.children) > 0 : sub = [] for c in self.children: sub.extend(c.get_texts_nested(prep,compare_to)) rt = [{"id":self.identifier,"tag":self.xml.tag,"data":sub,"meta":self.meta}] else: if self.data is None: self.data = '' if compare_to is None: data = self.data else: print "diffing" el = compare_to.xml.find(".//{0}[@id='{1}']".format(self.xml.tag,self.identifier)) if(el is not None): original = self.__class__(el) do = original.data if do == None: do = "" ds = self.data if ds == None: ds = "" data = simplediff.html_diff(do,ds) else: print "element not found" data = simplediff.html_diff("",self.data) if prep: data = utils.prep_for_display(data) rt = [{"id":self.identifier,"tag":self.xml.tag,"data":data,"meta":self.meta}] return rt
def compare_with(self,vn2): return simplediff.html_diff(self.text,vn2.text)
def diff(self,other): if self.identifier in other: self.data = simplediff.html_diff(other[self.identifier],self.data) self.apply_update() for c in self.children: c.diff(other)