<p>可以编写一个helper函数来在正确的位置插入一个新元素,但是如果不了解更多关于结构的信息,就很难使它成为泛型。</p>
<p>下面是对整个文档中的子元素进行排序的简短示例:</p>
<pre class="lang-py prettyprint-override"><code>from lxml import etree
data = """<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)
</code></pre>
<p>屈服:</p>
<pre class="lang-xml prettyprint-override"><code><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>
</code></pre>