可以编写一个辅助函数以在正确的位置插入新元素,但是如果不了解有关结构的更多信息,很难使其通用。
这是在整个文档中对子元素进行排序的简短示例:
from lxml import etreedata = """<X> <X03>3</X03> <X02>2</X02> <A> <A02>Y</A02> <A01>X</A01> <A03>Z</A03> </A> <X01>1</X01> <B> <B01>Z</B01> <B02>X</B02> <B03>C</B03> </B></X>"""doc = etree.XML(data,etree.XMLParser(remove_blank_text=True))for parent in doc.xpath('//*[./*]'): # Search for parent elements parent[:] = sorted(parent,key=lambda x: x.tag)print etree.tostring(doc,pretty_print=True)屈服:
<X> <A> <A01>X</A01> <A02>Y</A02> <A03>Z</A03> </A> <B> <B01>Z</B01> <B02>X</B02> <B03>C</B03> </B> <X01>1</X01> <X02>2</X02> <X03>3</X03></X>



