import lxml.etree as etree def inject(doc, add_ele, out_fufi=None): if(isinstance(doc, str)): ### allow for a file as the first argument parser = etree.XMLParser(remove_blank_text=True) doc = etree.parse(doc, parser) doc_root_ele = doc.getroot() #foo = type(add_doc) #print(foo) #quit() #if isinstance('lxml.etree._Element', doc_root_ele): # print("ele") # quit() #add_doc_root_ele = add_doc.getroot() doc_root_ele.append(add_ele) if out_fufi is not None: doc.write(out_fufi, pretty_print=True) return doc def show(doc, do_verbose=False): string = etree.tostring(doc, pretty_print=True).decode() if do_verbose: print(string) return string