PYTHON: как добавить корневой узел в XML

У меня xml файл выглядит примерно так

<A>
  <B>
     <C>
       ....
     </C>
  </B>
</A>

Я хочу добавить корень поверх элемента "A". Я нашел способ добавить элементы в корень. Но как изменить существующий рут и добавить поверх него, используя python.

После добавления root в xml это должно выглядеть так

<ROOT>
  <A>
    <B>
       <C>
         ....
       </C>
    </B>
  </A>
</ROOT>

1 ответ

Решение
import lxml.etree as ET
tree = ET.parse('data')
root = tree.getroot()
newroot = ET.Element("root")
newroot.insert(0, root)
print(ET.tostring(newroot, pretty_print=True))

доходность

<root>
  <A>
  <B>
     <C>
       ....
     </C>
  </B>
</A>
</root>

Но на самом деле, если вам не нужно добавлять что-то более сложное, может быть достаточно простого форматирования строки:

with open('data', 'rb') as f, open('newdata', 'wb') as g:
    g.write('<ROOT>{}</ROOT>'.format(f.read()))
Другие вопросы по тегам