У меня есть несколько «корневых» тегов с именем детей. Я хочу отсортировать блоки «root», упорядоченные по алфавиту с помощью элемента «name». Попробовал lxml/etree/minidom, но не смог заставить его работать ... Я не могу заставить его анализировать значение внутри тегов, а затем сортировать родительские корневые теги.Сортировка тегов XML с помощью дочерних элементов Python
<?xml version='1.0' encoding='UTF-8'?>
<roots>
<root>
<path>//1.1.1.100/Alex</path>
<name>Alex Space</name>
</root>
<root>
<path>//1.1.1.101/Steve</path>
<name>Steve Space</name>
</root>
<root>
<path>//1.1.1.150/Bethany</path>
<name>Bethanys</name>
</root>
</roots>
Вот что я пробовал:
import xml.etree.ElementTree as ET
def sortchildrenby(parent, child):
parent[:] = sorted(parent, key=lambda child: child)
tree = ET.parse('data.xml')
root = tree.getroot()
sortchildrenby(root, 'name')
for child in root:
sortchildrenby(child, 'name')
tree.write('output.xml')
Итак, вы хотите, чтобы имя было первым? –