Пишу программу, которая работает с xml файлами. И возникла проблема с записью символов в файл. Функция для записи выглядит следующим образом:
def addPost(name, text):
print(name + text)
tree = ET.parse('db.xml')
root = tree.getroot()
post = ET.SubElement(root,'post')
post.set('num', str(getCnt()))
nameElem = ET.SubElement(post, 'name')
nameElem.text = name
textElem = ET.SubElement(post, 'text')
textElem.text = text
tree.write('db.xml')
Проблема заключается в следующем: при записи в файл в нём вместо обычной строки появляются следующие символы:
Работа
Плюс сам скрипт меняет кодировку xml файла с utf-8 на ansii. Как с этим справиться?
Ответ
parser = ET.XMLParser(encoding="utf-8")
root = ET.parse("file.xml", parser=parser)
tree.write("out.xml", encoding="utf-8")
Комментариев нет:
Отправить комментарий