Below is the xml I am trying to sort using etree the value in fullName to be considered to sort alphabetically
<CustomLabels xmlns="http://soap.sforce.com/2006/04/metadata">
<labels>
<fullName>AnAutoQuote</fullName>
<value>This is an automatically generated quote.</value>
<language>en_US</language>
<protected>false</protected>
<shortDescription>Automatic Quote</shortDescription>
</labels>
<labels>
<fullName>AManualQuote</fullName>
<value>This is a manual quote.</value>
<language>en_US</language>
<protected>false</protected>
<shortDescription>Manual Quote</shortDescription>
</labels>
</CustomLabels>
Code that i tried but it returns the same xml as it got in the input. here xml contains the file that was read for input and parser is the xml parser with encoding set to utf-8
root = objectify.string(xml, parse)
for r in root.iter("labels"):
r[:] = sorted(r, key = lambda ch: -(ch.tag=="fullname"))
print(etree.toStrin(root).decode("utf-8))