您可以使用addnext()方法:
from lxml import etreeXML= """<tag attrib1='I'> <subtag1 subattrib1='1'> <subtext>text1</subtext> </subtag1> <subtag3 subattrib3='3'> <subtext>text3</subtext> </subtag3></tag>"""parser = etree.XMLParser(remove_blank_text=True)tag = etree.fromstring(XML, parser)subtag1 = tag.find("subtag1")subtag2 = etree.Element("subtag2", subattrib2="2")subtext = etree.SubElement(subtag2, "subtext")subtext.text = "text2"subtag1.addnext(subtag2) # Add subtag2 as a following sibling of subtag1print etree.tostring(tag, pretty_print=True)
输出:
<tag attrib1="I"> <subtag1 subattrib1="1"> <subtext>text1</subtext> </subtag1> <subtag2 subattrib2="2"> <subtext>text2</subtext> </subtag2> <subtag3 subattrib3="3"> <subtext>text3</subtext> </subtag3></tag>
替代方法:
insert()在根元素上使用:
subtag2 = etree.Element("subtag2", subattrib2="2")subtext = etree.SubElement(subtag2, "subtext")subtext.text = "text2"tag.insert(1, subtag2) # Add subtag2 as the second child (index 1) of the root element
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)