Вот мой код:
import xml.etree.ElementTree as ET
def ban(u_id, reason = None):
xml_doc = ET.Element('root')
u_id = str(u_id)
#id
user = ET.SubElement(xml_doc, 'user', id = u_id)
#name
ET.SubElement(user, 'name').text ="name"
#reason
ET.SubElement(user, 'reason').text = reason
#date
ET.SubElement(user, 'date').text = 'date_of_ban'
tt = ET.ElementTree(xml_doc)
#decoration
prettify(xml_doc)
#writing
tt.write('banned.xml', encoding = 'UTF-8', xml_declaration = True)
После выполнения функции у меня перезаписывается xml, то есть удаляются остальные подэлементы, но создаваемый остается