Вы можете установить xml_declaration аргумент для функции write
на False
, так что вывод не будет иметь объявления xml с кодировкой, а затем просто добавьте нужный заголовок вручную. На самом деле, если вы установите кодировку как 'utf-8' (в нижнем регистре), объявление xml также не будет добавлено.
import xml.etree.cElementTree as ElementTree
tree = ElementTree.Element('tmx', {'version': '1.4a'})
ElementTree.SubElement(tree, 'header', {'adminlang': 'EN'})
ElementTree.SubElement(tree, 'body')
with open('myfile.tmx', 'wb') as f:
f.write('<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE tmx SYSTEM "tmx14a.dtd">'.encode('utf8'))
ElementTree.ElementTree(tree).write(f, 'utf-8')
Результирующий файл (новые строки добавлены вручную для удобства чтения):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tmx SYSTEM "tmx14a.dtd">
<tmx version="1.4a">
<header adminlang="EN" />
<body />
</tmx>