У меня есть две структуры XML, xml_1
и xml_2
xml_1
- это структура, которую я создал как таковую:
xml_1 = etree.Element('xml_1_root')
xml_2
- это структура, которую я проанализировал из существующих XML данных как таковых:
xml_2 = etree.parse(xml_2.xml).getroot()
Я бы хотел сделать что-то вроде этого:
for node in xml_2.findall("node"):
etree.SubElement(xml_1, node)
Так что вся структура из node
добавляется как дочерняя к вновь созданной xml_1
структуре.
Проблема в том, что метод SubElement
(очевидно) здесь не работает, так как это нецелевое использование.
Мой вопрос: есть ли в библиотеке l xml .etree метод для добавления существующих (проанализированных) элементов в качестве субэлементов, таких как любые атрибуты, текст и информация о дочерних узлах сохраняется?
Проблема в том, что многие из узлов в xml_2
имеют дочерние элементы (многие из которых также имеют детей), и я бы предпочел избежать необходимости рекурсии в их для детального извлечения всей информации.
Примечание : это не вопрос того, как создать * 103 7 * Etree SubElement с нуля. Это вопрос о том, как добавить существующий элемент в другое дерево при сохранении существующей структуры данных.