Моя программа сохраняет немного данных XML в файл в симпатичном формате из строки XML. Это делает трюк:
from xml.dom.minidom import parseString
dom = parseString(strXML)
with open(file_name + ".xml", "w", encoding="utf8") as outfile:
outfile.write(dom.toprettyxml())
Однако я заметил, что в моем заголовке XML отсутствует параметр кодировки.
<?xml version="1.0" ?>
Поскольку мои данные могут содержать много символов Юникода, я должен убедиться, что в поле кодировки XML также указан UTF-8.
Теперь, просматривая документацию minidom, я прочитал, что «для указания поля кодирования заголовка XML можно использовать дополнительное кодирование аргумента ключевого слова». Итак, я пытаюсь это:
from xml.dom.minidom import parseString
dom = parseString(strXML)
with open(file_name + ".xml", "w", encoding="utf8") as outfile:
outfile.write(dom.toprettyxml(encoding="UTF-8"))
Но тогда я получаю:
TypeError: write() argument must be str, not bytes
Почему первый фрагмент кода не приводит к этой ошибке? И что я делаю не так?
Спасибо!
R.